zoukankan      html  css  js  c++  java
  • .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)
  • 相关阅读:
    gcc 不同平台不同宏写法 Function Multiversioning
    linux win10 挂载 C盘 系统盘 ntfs 问题 休眠 快速启动关闭了
    archlinux wine
    ssm批量操作易错点
    行政区划代码
    ssm获取session
    layui 批量删除点击不起作用
    layui分页失效问题
    java 获取服务器配置信息【使用sigar、sql语句、ServerInfo】
    ssm中html跳转之后乱码
  • 原文地址:https://www.cnblogs.com/qgbo/p/11493087.html
Copyright © 2011-2022 走看看