在abp框架中通过继承单例(ISingletonDependency)、瞬时(ITransientDependency)接口,然后实现依赖注入,下面我将简单演示是怎么实现的
1、自定义扩展方法(通过反射获取其需要注入的类)
public static void AddModule<T>(this ServiceCollection services) where T : IModule
{
// 获取依赖的特性
var h = typeof(T).GetCustomAttribute<DependOnAttribute>();
if (h != null && h.GetDependOnTypes().Length != 0)
{
foreach (var t in h.GetDependOnTypes())
{
services.AddModule(t);
}
}
services.AddDepend(typeof(T));
}