广告
返回顶部
首页 > 资讯 > 精选 >ASP.NET Core实现自动依赖注入的示例
  • 348
分享到

ASP.NET Core实现自动依赖注入的示例

2023-06-14 13:06:39 348人浏览 薄情痞子
摘要

这篇文章主要介绍了ASP.net core实现自动依赖注入的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在开发.net core WEB服务的时候,我们习惯使用自带的依

这篇文章主要介绍了ASP.net core实现自动依赖注入的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

开发.net core WEB服务的时候,我们习惯使用自带的依赖注入容器来进行注入。

于是就会经常进行一个很频繁的的重复动作:定义一个接口->写实现类->注入

有时候会忘了写Add这一步,看到屏幕上的报错一脸懵逼,然后瞬间反应过来忘了注入了。赶紧补上serviceCollection.AddXXX这句话

虽然说有很多开源框架已经实现了类似的工作,比如AutoFac,Unity等依赖注入框架。但是这些库都太庞大了,我个人还是喜欢轻量级的实现。

定义一个枚举

 [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]    public class AutoInjectAttribute : Attribute    {        public AutoInjectAttribute(Type interfaceType, InjectType injectType)        {            Type = interfaceType;            InjectType = injectType;        }         public Type Type { get; set; }         /// <summary>        /// 注入类型        /// </summary>        public InjectType InjectType { get; set; }    }

定义三种注入类型

 /// <summary>    /// 注入类型    /// </summary>    public enum InjectType    {        Scope,        Single,        Transient    }

扫描运行目录下所有的dll,进行自动注入

 /// <summary>    /// 自动依赖注入    /// </summary>    public static class AutoInject    {        /// <summary>        /// 自动注入所有的程序集有InjectAttribute标签        /// </summary>        /// <param name="serviceCollection"></param>        /// <returns></returns>        public static IServiceCollection AddAutoDi(this IServiceCollection serviceCollection)        {            var path = AppDomain.CurrentDomain.BaseDirectory;            var assemblies = Directory.GetFiles(path, "*.dll").Select(Assembly.LoadFrom).ToList();            foreach (var assembly in assemblies)            {                var types = assembly.GetTypes().Where(a => a.GetCustomAttribute<AutoInjectAttribute>() != null)                    .ToList();                if (types.Count <= 0) continue;                foreach (var type in types)                {                    var attr = type.GetCustomAttribute<AutoInjectAttribute>();                    if (attr?.Type == null) continue;                    switch (attr.InjectType)                    {                        case InjectType.Scope:                            serviceCollection.AddScoped(attr.Type, type);                            break;                        case InjectType.Single:                            serviceCollection.AddSingleton(attr.Type, type);                            break;                        case InjectType.Transient:                            serviceCollection.AddTransient(attr.Type, type);                            break;                        default:                            throw new ArgumentOutOfRangeException();                    }                }            }             return serviceCollection;        }    }

使用自动依赖注入功能

    public void ConfigureServices(IServiceCollection services)        {            services.AddAutoDi();        }
   public interface ITest    {        string Say();    }     [AutoInject(typeof(ITest),InjectType.Scope)]    public class Test : ITest    {        public String Say()        {            return "test:"+DateTime.Now.ToString();        }    }

再次运行程序,所有的贴有AutoInject的所有的实现类,都会被注入到asp.Net Core的依赖注入容器中。

感谢你能够认真阅读完这篇文章,希望小编分享的“asp.net Core实现自动依赖注入的示例”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: ASP.NET Core实现自动依赖注入的示例

本文链接: https://www.lsjlt.com/news/271154.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ASP.NET Core实现自动依赖注入的示例
    这篇文章主要介绍了ASP.NET Core实现自动依赖注入的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在开发.NET Core web服务的时候,我们习惯使用自带的依...
    99+
    2023-06-14
  • ASP.NET Core实现自动依赖注入
    目录定义一个枚举定义三种注入类型扫描运行目录下所有的dll,进行自动注入使用自动依赖注入功能 在开发.NET Core web服务的时候,我们习惯使用自带的依赖注入容器来进行注入。 ...
    99+
    2022-11-12
  • ASP.NET Core依赖注入实例分析
    今天小编给大家分享一下ASP.NET Core依赖注入实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。ASP...
    99+
    2023-06-30
  • Asp.net core中依赖注入的实现
    使用服务 在Asp.net core的Controller中,可以通过如下两种方式获取系统注入的服务: 构造函数 可以直接在构造函数中传入所依赖的服务,这是非常常见的DI注入方式。 ...
    99+
    2022-11-13
  • ASP.NET Core依赖关系注入怎么实现
    本篇内容主要讲解“ASP.NET Core依赖关系注入怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET Core依赖关系注入怎么实现”吧!1.前言面向对象...
    99+
    2023-06-29
  • ASP.net core使用Autofac实现泛型依赖注入
    目录什么是泛型依赖注入.net core里实现泛型依赖注入安装AutofacIMyRepository定义仓储接口MyRepositoryBase仓储实现在Program声明实现依赖...
    99+
    2022-11-13
  • ASP.NET Core依赖注入DI容器怎么实现
    这篇文章主要介绍“ASP.NET Core依赖注入DI容器怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET Core依赖注入DI容器怎么实现”文章能帮助大家解...
    99+
    2023-07-05
  • ASP.NET Core依赖注入框架的使用
    目录一、IoC框架二、IoC-Autofac 三、.NET Core中自带DI的使用四、Autofac 使用五、批量注入 前言: 还记得上篇文章中ASP.NET Core 依赖注入详...
    99+
    2022-11-12
  • ASP.net core怎么使用Autofac实现泛型依赖注入
    本文小编为大家详细介绍“ASP.net core怎么使用Autofac实现泛型依赖注入”,内容详细,步骤清晰,细节处理妥当,希望这篇“ASP.net core怎么使用Autofac实现泛型依赖注入”文章能帮助大家解决疑惑...
    99+
    2023-06-30
  • ASP.NET MVC如何实现依赖注入
    这篇文章主要介绍了ASP.NET MVC如何实现依赖注入,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言在java的spring中有自动注入功能,使得代码变得更加简洁灵活,...
    99+
    2023-06-28
  • Angular4依赖注入的示例分析
    这篇文章给大家分享的是有关Angular4依赖注入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基础知识Angular CLI 基本使用1、安装 Angular CLI...
    99+
    2022-10-19
  • Spring依赖注入的示例分析
    这篇文章给大家分享的是有关Spring依赖注入的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一.依赖简介一个典型的企业应用程序不是由一个单一的对象组成(或Spring的说法中的bean)。即使是最简单的...
    99+
    2023-06-03
  • Asp.net core程序中使用微软的依赖注入框架
    我之前在博文中介绍过Asp.net core下系统自带的依赖注入框架,这个依赖框架在Microsoft.Extensions.DependencyInjection中实现,本身并不是...
    99+
    2022-11-13
  • Vue中依赖注入的示例分析
    这篇文章主要介绍了Vue中依赖注入的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。简单粗暴型:<el-select ...
    99+
    2022-10-19
  • Angular中依赖注入的示例分析
    这篇文章主要介绍Angular中依赖注入的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!依赖注入:设计模式依赖:程序里需要的某种类型的对象。依赖注入框架:工程化的框架注入器Injector:用它的API创建依...
    99+
    2023-06-06
  • Asp.net core程序中怎么使用微软的依赖注入框架
    本篇内容主要讲解“Asp.net core程序中怎么使用微软的依赖注入框架”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Asp.net core程序中怎么使用微软的依赖注入框...
    99+
    2023-07-02
  • Angular4依赖注入之组件服务注入的示例分析
    这篇文章将为大家详细讲解有关Angular4依赖注入之组件服务注入的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。开发环境及开发语言:Angular 4 +Ang...
    99+
    2022-10-19
  • Bean的自动注入及循环依赖问题
    目录一、spring中的各种注入方式一、spring中的各种注入方式 对于是spring的注入前置知识、@Autowired、@Resource等的知识可以看其他文章,这里就不多说了...
    99+
    2023-03-23
    springbean的自动注入方式 循环依赖问题的解决
  • ASP.NET MVC 3如何让依赖注入实现得更简单
    本篇文章为大家展示了ASP.NET MVC 3如何让依赖注入实现得更简单,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我没有找到一个完整的示例,只有一些代码片断,于是,我将其整理了一翻,也有一点点个...
    99+
    2023-06-17
  • Angular6中服务和依赖注入的示例分析
    这篇文章主要介绍Angular6中服务和依赖注入的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在开发中,组件一般用来写视图有关的功能,服务则写一些其他的逻辑,诸如从服务器获...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作