1 SimpleIoc 是一个简单依赖注入容器;
2
3 例:Mainviewmodel需要使用一个服务或类,假设我需要的person类
4
5 首先将实现的服务注册到SimpleIOC,
6 SimpleIoc.Default.Register<Person>(()=>new Person());
7 然后把Mainviewmodel也注册到SimpleIOC,
8 SimpleIoc.Default.Register<MainViewModel>();
9
10
11 你可以通过ServiceLocator.Current.GetInstance<MainViewModel>();来获取一个Mainviewmodel的实例,
并且根据Mainviewmodel的构造参数在SimpleIOC中寻找匹配的对象,然后就可以使用了;
12
13 public class ViewModelLocator
14 {
15 static ViewModelLocator()
16 {
17 ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);//设置默认的SimpleIOC
18 SimpleIoc.Default.Register<Person>(()=>new Person());//将自己的类注册到SimpleIOC
19
20 SimpleIoc.Default.Register<MainViewModel>();//把Mainviewmodel也注册到SimpleIOC
21 }
22 public MainViewModel Main
23 {
24 get
25 {
26 return ServiceLocator.Current.GetInstance<MainViewModel>();//获取Mainviewmodel的实例
27 }
28 }
29 }
30
31
32 public MainViewModel(Person data)///Mainviewmodel的构造参数,匹配Person类
33 {
34 WelcomeTitle =data.Name;
35 }