原生WPF使用IOC容器

1、删除App.xaml中的 StartupUri=""
2、改造App.xaml.cs

 public partial class App : Application
 {
     public App()
     {
         ServiceProvider = GetServiceProvider();
     }

     private IServiceProvider GetServiceProvider()
     {
         ServiceCollection services = new ServiceCollection();
         services.AddTransient<MainView>();
         services.AddTransient<MainViewModel>();
         return services.BuildServiceProvider();
     }

     public IServiceProvider ServiceProvider { get; set; }

     protected override void OnStartup(StartupEventArgs e)
     {       
         base.OnStartup(e);
         Initialized();
        
     }
     public void Initialized()
     {
         MainView mainView = ServiceProvider.GetService<MainView>();
         mainView.Show();
     }  
 }

本文作者:孤沉

本文链接:https://www.cnblogs.com/guchen33/p/18221329

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   孤沉  阅读(109)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开