Внедрение зависимостей при использовании статических классов - PullRequest
0 голосов
/ 22 мая 2019

Общий вопрос - я знаю, что при использовании DI-контейнеров следует избегать статических классов, но в проекте, над которым я работаю, один из статических классов - это ограничение, которого я не могу избежать. Я добавляю метод в этот статический класс, и мне нужно иметь возможность внедрить службу, созданную контейнером DI. Одним из подходов было добавить статический доступ к контейнеру, но я чувствую, что это анти-паттерн. Я хотел знать, есть ли более элегантный способ внедрить службу в статический метод.

Специальный вопрос - Я разрабатываю присоединенное свойство WPF, и в обратном вызове изменения мне нужно получить экземпляр службы, который был зарегистрирован с использованием контейнера Unity DI. Единственное решение, о котором я мог подумать, это добавить статическое свойство в загрузчик, который бы возвращал контейнер Unity.

    public class Bootstrapper
{
    public static UnityContainer Instance
    {
        get
        {
            return _container;
        }
    }

Но неправильно хранить контейнер в статическом поле.

Существуют ли другие - более элегантные - решения?

...