.net core 依赖注入在特性中的应用

.net core 依赖注入在特性中的应用,不知道怎么用属性注入,那么在特性中的构造函数里,怎么用接口的方法呢?

来一个简单的例子:

主要思路是把ServiceProvider 静态全局化:

   public class Program
    {
       public static ServiceProvider serviceProvider=null;
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            serviceProvider = new ServiceCollection()
               .AddTransient<IEat, Eat>()
               .BuildServiceProvider();


            var s = new Student();

            Type t = typeof(Student);

            foreach (var item in t.CustomAttributes)
            {
                var aa= Activator.CreateInstance(item.AttributeType,new object[] { "apple"});
                Console.WriteLine("-------");
            }
            Console.ReadLine();
        }
    }

这样在特性的方法中就能使用了。

Github   https://github.com/qgbo/.netCore-

这种方式,不是依赖注入,而是叫Service Locator 的“模式”。参考

依赖注入,无所不在,那什么需要注入呢?好像是所有东西,实际上却是不可能的。一个Student 类,只有年龄,性别等简单的属性,这在程序中类似于Model, 或数据库中的基础表。他的构造函数里也只有基础类型的参数。这个会需要注入吗?好像没有场景,也没见过需要注入一个Student的。

这个是不需要的,注入的,一般是接口,接口是功能的抽象,也就是说注入的是功能。某一个类,需要某一个功能,那就注入这个有这个功能的接口就好。

在 .NetCore 中,DI容器中的项,叫Service, 容器叫ServiceCollcetion/serviceProvider . 强调的,这里面的内容,都是服务/功能

气功波(18037675651)
原文地址:https://www.cnblogs.com/qgbo/p/11493087.html