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.