Должен ты?
Это решать тебе.Это может быть сложно.Если вы используете его правильно, это может стоить того, как для вашего кода, так и для вашего знания о том, как работает ваш код.
Вы сможете идентифицировать части вашего приложения, которые должны касаться только других частейна расстоянии вытянутой руки.Вы сможете более свободно вносить изменения в свой код, не затрагивая другие части своего кода.Вам также будет легче создавать модульные тесты, использующие фиктивные объекты, но это лишь побочное преимущество.
Вам придется прочитать несколько статей на эту тему и посмотреть, имеет ли это для вас смысл.
(если честно, это действительно не сложно - просто так кажется, когда вы изучаете это или пытаетесь объяснить это кому-то, кто плохо знаком с понятиями)
Unity и Dependency Injection
IUnityContainer
является частью Unity , который является Dependency Injection containerбиблиотека.
Может быть объединена с PRISM фреймворком для использования в WPF / Silverlight.
Внедрение зависимостей имеет много правил, которым вы хотите следовать, чтобы получитьмаксимальная выгода.Я не вижу простого или эффективного руководства по началу работы на сайте Unity, и книга Марка Симанна о внедрении зависимостей в .Net не является бесплатной.
Поэтому вместо этого я предлагаю вамознакомьтесь с вводным руководством по внедрению зависимостей на сайте с хорошим руководством:
Это не платформа Unity, поэтомукод не будет компилироваться напрямую ...
... но он должен научить вас, что такое Dependency Injection и почему вы хотите его использовать.Тогда вы сможете следовать образцу кода и видео на странице Unity.
Если вы пропустите эти шаги, вы очень быстро запутаетесьи, вероятно, выстрелит себе в ногу по крайней мере несколько десятков раз.
Создание Windows
Контейнер не используется, кроме как в одной этой функции.Используйте его где-нибудь еще, и вы не используете контейнер DI правильно.Вы просто будете использовать контейнер для регистрации ваших представлений, просмотра моделей и моделей, разрешить главного окна, которое вы ранее зарегистрировали, и утилизировать контейнер, когда закончите.
Этот процессназывается «Модель трех вызовов».К сожалению, у меня нет общих примеров для Unity, но вот статья о шаблоне трех вызовов для еще одной библиотеки контейнеров DI .
Вы также можете увидеть это упомянутое в этомNinject учебник, который я связал выше.