获取特定类型的通用实例 class

Get instances of generic class for specific type

我有通用 class ModuleEntityBase 模板参数。

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