Wo soll ein IoC-Container in einer WPF-Anwendung platziert und konfiguriert werden?

Ich arbeite an einer mittelgroßen WPF-Anwendung (MVVM), die in Zukunft erweiterbar und wartbar sein soll. Aus diesem Grund habe ich mich für einen IoC-Container (in diesem Fall Unity) entschieden, um die Flexibilität zu gewährleisten.

Ich bin mir jedoch nicht sicher, wo ich Unity in einer WPF-Anwendung platzieren und konfigurieren soll.

Ich denke, Container sollte global zugänglich sein, also sollte es wahrscheinlich zur Anwendungsklasse gehen. Aber soll ich es als statische Eigenschaft machen? Sollte ich es in der Ereignisbehandlungsroutine Application_Startup () konfigurieren?

Z.B:

<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>

Auf diese Weise kann ich von jedem Ort in der Anwendung über die statische Eigenschaft auf den Container zugreifen:

<code>App.MyUnityContainer
</code>

Ich denke, dies ist eine Möglichkeit, dies zu tun, aber ich bin nicht sicher, ob es für dieses Problem bessere Vorgehensweisen gibt, insbesondere für WPF-Apps.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage