.net core自带依赖注入还是挺好用的,写一下心得,当然不会写的很细,需要了解依赖注入的才行。
第一种模式是,某个实现类继承某个接口,将实现类和接口绑在一起。
注入点都是些在Startup文件中的ConfigureServices方法里面的,比如这样:
services.AddScoped<IService, UserService>();
网上有不少教程都有详细说明这些就不解释了。
注入的三种生命周期:
//瞬时(生命周期服务在它们每次请求时被创建。这一生命周期适合轻量级的,无状态的服务。)
//services.AddTransient();
//单例(单例生命周期服务在它们第一次被请求时创建并且每个后续请求将使用相同的实例。)
//services.AddSingleton();
//作用域(作用域生命周期服务在每次请求被创建一次。)
//services.AddScoped();
每个实现类都继承一个接口太麻烦,也可以不继承接口,直接注入的方式,写法如下:
services.AddScoped<UserService>();
如果几百个类,这样一个一个写也很累,也可以让这些类统一继承某个接口,然后拿到实现这个接口的所有类,循环注入下就可以了。
//根据特别标识注入信息
//List<Type> types = AppDomain.CurrentDomain.GetAssemblies()
//.SelectMany(a => a.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IService))))
//.ToList();
//foreach (Type service in types)
//{
// services.AddScoped(service);
//}
注入就先讲这么多。