Где разместить и настроить контейнер IoC в приложении WPF?

Я работаю над WPF-приложением среднего размера (MVVM ), которое должно быть расширяемым и удобным в обслуживании в будущем. Поэтому я решил использовать контейнер IoC (Unity в данном случае ), чтобы обеспечить гибкость.

Однако я не уверен, где разместить и настроить Unity в приложении WPF.

Я думаю, контейнер должен быть доступен глобально, поэтому он, вероятно, должен перейти в класс Application. Но должен ли я сделать это статическим свойством? Должен ли я настроить его в обработчике событий Application _Startup ()?

Например,:

/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
    public static UnityContainer MyUnityContainer;


    private void Application_Startup(object sender, StartupEventArgs e)
    {
        // instantiate and configure Unity
    }
}

Таким образом, я смогу получить доступ к контейнеру из любого места в приложении через статическое свойство.:

App.MyUnityContainer

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

15
задан matori82 29 April 2012 в 13:27
поделиться