我正在开发一个中型 WPF 应用程序 (MVVM),该应用程序将来应该是可扩展和可维护的。因此,我决定使用 IoC 容器(在本例中为 Unity)来保持灵活性。
但是我不确定在 WPF 应用程序中放置和配置 Unity 的位置。
我猜容器应该可以全局访问,所以它可能应该去 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
我想这是一种方法,但我不确定是否有更好的做法来解决这个问题,特别是针对 WPF 应用程序。