Я хотел написать обертку вокруг контейнера зависимостей контейнеров в моем проекте .net core , чтобы всякий раз, когда мне нужно что-то внедрить в мое приложение, Я могу использовать мой собственный инжектор, который на самом деле использует сторонние контейнеры, такие как Autofac и SimpleInjection для инъекций. Таким образом, я могу изменить мой инжектор, не меняя код .
Для этой цели я написал интерфейс , в котором есть несколько необходимых методов:
interface IDependencyBuilder
{
void CreateContainer();
IContainer Build();
void RegisterModule<T>() where T : Module, new();
}
И я реализовал это для Autofac следующим образом:
public class AutofacContainerBuilder : IDependencyBuilder
{
private readonly ContainerBuilder _containerBuilder;
public AutofacContainerBuilder()
{
_containerBuilder = new ContainerBuilder();
}
public void CreateContainer()
{
throw new NotImplementedException();
}
public IContainer Build()
{
return _containerBuilder.Build();
}
public void RegisterModule<T>() where T : Autofac.Module,new()
{
_containerBuilder.RegisterModule<T>();
}
}
Я думаю, что-то не так с такой реализацией и написанием оболочки.
1 . Модели подписей и ввода / вывода : Я точно не знаю, какие функции с какими сигнатурами следует записывать в оболочку.
2 . Реализации для разных третьих сторон : Для создания контейнера я должен иметь его в конструкторе, а метод создания контейнера не может быть реализован.
Я ожидаю обработать внедрение зависимостей в моем модульном приложении с помощью моей оболочки.
Как правильно сделать это для модульного веб-приложения?