Я хочу зарегистрировать общий класс репозитория, используя Unity.Dynamically Register Generic Type
Это мой общий класс:
public class Repository<TModel>
: IRepository<TModel> where TModel : class, IModel
TModel является объектом ПОКО используется с Entity.
Если я зарегистрирую его таким образом, он будет работать.
IOC_Container.RegisterType(typeof(IRepository<Employee>), typeof(Repository<Employee>));
Это потребует, хотя я зарегистрирую каждый из TModel, который становится громоздким.
У меня есть bootstrapper, который динамически регистрирует мои классы обслуживания с помощью отражения, и я хотел бы сделать то же самое с репозиториями.
Это код Загрузчик для услуг:
var currentAssembly = Assembly.LoadFrom(assembly);
var assemblyTypes = currentAssembly.GetTypes();
foreach (var assemblyType in assemblyTypes)
{
if (assemblyType.IsInterface)
{
continue;
}
if (assemblyType.FullName.EndsWith("Service"))
{
foreach (var requiredInterface in assemblyType.GetInterfaces())
{
if (requiredInterface.FullName.EndsWith("Service"))
{
var typeFrom = assemblyType.GetInterface(requiredInterface.Name);
var typeTo = assemblyType;
IOC_Container.RegisterType(typeFrom, typeTo);
}
}
}
}
}
Любые предложения?