Onde colocar e configurar contêiner IoC em um aplicativo WPF?
Eu estou trabalhando em um aplicativo WPF de tamanho médio (MVVM) que deve ser extensível e sustentável no futuro. Assim, decidi usar um contêiner IoC (Unity, neste caso) para manter as coisas flexíveis.
No entanto, não tenho certeza de onde colocar e configurar o Unity em um aplicativo WPF.
Eu acho que contêiner deve ser acessível globalmente, então provavelmente deve ir para a classe Application. Mas devo fazer isso como propriedade estática? Devo configurá-lo no manipulador de eventos Application_Startup ()?
Por exemplo:
/// <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
}
}
Dessa forma, poderei acessar o contêiner de qualquer lugar no aplicativo por meio da propriedade estática:
App.MyUnityContainer
Eu acho que esta é uma maneira de fazer isso, mas não tenho certeza se existem práticas melhores para esse problema, especificamente para aplicativos WPF.