栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用MVVMLight SimpleIoc?[关闭]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用MVVMLight SimpleIoc?[关闭]

SimpleIoc婴儿床床单:

1)您在ViewModelLocator中注册了所有接口和对象

class ViewModelLocator {     static ViewModelLocator()     {      ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);       if (ViewModelbase.IsInDesignModeStatic)         {    SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();       }       else      {    SimpleIoc.Default.Register<IDataService, DataService>();       }       SimpleIoc.Default.Register<MainViewModel>();    SimpleIoc.Default.Register<SecondViewModel>();     }    public MainViewModel Main     {          get          {       return ServiceLocator.Current.GetInstance<MainViewModel>();          }     }}

2)默认情况下,每个对象都是单例。要解析对象以使其不是单例,您需要将唯一值传递给GetInstance调用:

SimpleIoc.Default.GetInstance<MainViewModel>(Guid.NewGuid().ToString());

3)要针对接口注册类:

SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();

4)要针对接口注册具体对象:

SimpleIoc.Default.Register<IDataService>(myObject);

5)要注册具体类型:

SimpleIoc.Default.Register<MainViewModel>();

6)要从接口解析对象:

SimpleIoc.Default.GetInstance<IDataService>();

7)直接解析对象(建立和依赖关系解析):

SimpleIoc.Default.GetInstance<MainViewModel>();

8)MVVM使设计时数据的确非常容易:

if (ViewModelbase.IsInDesignModeStatic) {       SimpleIoc.Default.Register<IDataService, Design.DesignDataService>();          }          else         {       SimpleIoc.Default.Register<IDataService, DataService>();          }

如果您处于设计时模式,它将自动注册您的设计时服务,这使得在VS设计器中工作时在视图模型和视图中存储数据变得非常容易。

希望这可以帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/514761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号