私は、将来的に拡張可能で保守可能な中規模の 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
これは 1 つの方法だと思いますが、この問題、特に WPF アプリのより良い方法があるかどうかはわかりません。