Gdzie umieścić i skonfigurować kontener IoC w aplikacji WPF?

Pracuję nad średniej wielkości aplikacją WPF (MVVM), która powinna być rozszerzalna i możliwa do utrzymania w przyszłości. Dlatego postanowiłem użyć kontenera IoC (w tym przypadku Unity), aby zachować elastyczność.

Nie jestem jednak pewien, gdzie umieścić i skonfigurować Unity w aplikacji WPF.

Chyba kontener powinien być dostępny globalnie, więc prawdopodobnie powinien przejść do klasy Application. Ale czy powinienem to zrobić jako nieruchomą właściwość? Czy powinienem go skonfigurować w procedurze obsługi zdarzeń Application_Startup ()?

Na przykład:

<code>/// <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
    }
}
</code>

W ten sposób będę mógł uzyskać dostęp do kontenera z dowolnego miejsca w aplikacji za pośrednictwem właściwości statycznej:

<code>App.MyUnityContainer
</code>

Myślę, że jest to jeden ze sposobów, aby to zrobić, ale nie jestem pewien, czy istnieją lepsze praktyki dla tego problemu, szczególnie dla aplikacji WPF.

questionAnswers(3)

yourAnswerToTheQuestion