MvvMlight 中的 SimpleIoc

SimpleIoc 是一个简单依赖注入容器;

例:Mainviewmodel需要使用一个服务或类,假设我需要的person类

首先将实现的服务注册到SimpleIOC,
SimpleIoc.Default.Register(()=>new Person());
然后把Mainviewmodel也注册到SimpleIOC,
SimpleIoc.Default.Register();

你可以通过ServiceLocator.Current.GetInstance();来获取一个Mainviewmodel的实例, 并且根据Mainviewmodel的构造参数在SimpleIOC中寻找匹配的对象,然后就可以使用了;

public class ViewModelLocator
{
static ViewModelLocator()
{
ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);//设置默认的SimpleIOC
SimpleIoc.Default.Register<IRssService, RssService>();//公共变量交换器

        SimpleIoc.Default.Register<MainWindowViewModel>();
    }
    public MainWindowViewModelMain
    {
        get
        {
            return ServiceLocator.Current.GetInstance<MainWindowViewModel>();//获取Mainviewmodel的实例
        }
    }
}

public MainViewModel(Person data)///Mainviewmodel的构造参数,匹配Person类
{
WelcomeTitle =data.Name;
}

posted @ 2021-02-19 10:32  搬砖的L先生  阅读(641)  评论(0编辑  收藏  举报