Я использую UserNamePasswordValidator в WCF вместе с Unity для внедрения зависимостей, но поскольку WCF создает экземпляр UserNamePasswordValidator, я не могу внедрить свой контейнер в класс. Итак, как можно поступить об этом?
Самое простое решение, которое я могу придумать, - это создать статический прокси / класс-оболочку вокруг статического экземпляра UnityContainer, который предоставляет все те же методы ... Таким образом, любой класс может получить доступ к контейнеру, и я не Не нужно вводить это везде.
Так что я мог бы просто сделать UnityContainerWrapper.Resolve () в любом месте кода. Таким образом, в основном это решение решает 2 проблемы для меня, я могу использовать его в классах, для которых я не создаю экземпляр, и я могу использовать его где угодно, не вставляя контейнер в группу классов.
Единственный недостаток, о котором я могу подумать, - это то, что теперь я потенциально могу выставить свой контейнер группе классов, которые раньше не имели бы доступа к контейнеру. Не совсем уверен, если это даже проблема, хотя?