Написание оболочки для разных контейнеров внедрения зависимостей в ядре .net - PullRequest
0 голосов
/ 21 мая 2019

Я хотел написать обертку вокруг контейнера зависимостей контейнеров в моем проекте .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 . Реализации для разных третьих сторон : Для создания контейнера я должен иметь его в конструкторе, а метод создания контейнера не может быть реализован.

Я ожидаю обработать внедрение зависимостей в моем модульном приложении с помощью моей оболочки.

Как правильно сделать это для модульного веб-приложения?

...