获取特定类型的通用实例 class
Get instances of generic class for specific type
我有通用 class Module
和 EntityBase
模板参数。
public class Module<TEntity> : where TEntity : EntityBase
{
}
public class City : EntityBase {}
public class Country : EntityBase {}
...
我可以使用 autofac 获取具有特定 class 作为模板参数的模块 class 的实例吗?
例如Module<City>
、Module<Country>
。我不想为模型中的每个 class 继承 Module<T>
。
您可以像这样在容器中注册模块:
builder
.RegisterGeneric(typeof(Module<>>)
.AsSelf();
然后您可以将它们注入到服务的构造函数中:
public SomeService(Module<City> cityModule, Module<Country> countryModule)
您可以在文档中查看更多示例 here。
我有通用 class Module
和 EntityBase
模板参数。
public class Module<TEntity> : where TEntity : EntityBase
{
}
public class City : EntityBase {}
public class Country : EntityBase {}
...
我可以使用 autofac 获取具有特定 class 作为模板参数的模块 class 的实例吗?
例如Module<City>
、Module<Country>
。我不想为模型中的每个 class 继承 Module<T>
。
您可以像这样在容器中注册模块:
builder
.RegisterGeneric(typeof(Module<>>)
.AsSelf();
然后您可以将它们注入到服务的构造函数中:
public SomeService(Module<City> cityModule, Module<Country> countryModule)
您可以在文档中查看更多示例 here。