【问题标题】:MvvmCross 4.x in shared project共享项目中的 MvvmCross 4.x
【发布时间】:2016-06-01 11:43:33
【问题描述】:

我是使用 Xamarin 开发的新手,我尝试在所有平台的共享项目中使用 MvvmCross 库。似乎我成功地在每个项目中添加了库,但现在我很困惑如何开始。我试图按照文档进行操作,但我认为我没有正确理解。我可以使用 CreatableTypes 方法,但文档中没有 EndingWith 或其他方法。我发现的例子大多是关于 PCL 的。我什至不知道这是版本问题还是我错过了一些重要的东西。任何提示或链接都会有所帮助。

【问题讨论】:

    标签: xamarin cross-platform mvvmcross shared-project


    【解决方案1】:

    首先要小心您阅读的信息,请务必检查日期,否则您会浪费时间阅读一些过时的文章。最重要的资源是prolly官方样本:https://github.com/MvvmCross/MvvmCross-Samples

    通常你对所有的背景资料都使用 PCL,应该有一些像 https://github.com/MvvmCross/MvvmCross-Samples/blob/master/TipCalc/TipCalc.Core/App.cs 这样的类。在本课程中,您应该能够像这样为 IoC 注册所有服务:

    public override void Initialize()
    {  
        CreatableTypes().EndingWith("Service").AsInterfaces().RegisterAsSingleton();
    

    然后 MVVMCross 会自动负责初始化它,如果您在 ViewModel 中执行构造函数注入作为示例...

    public MainViewModel(IPreferenceService preferenceService)
    {
     // Do Something here with the Service
    }
    

    ...你只需要调用它来显示它的连接视图:

    ShowViewModel<MainViewModel>();
    

    所以基本上先尝试了解示例,我认为 TipCalc 仍然是最新的,至少它是 MVVMCross 4.0 https://github.com/MvvmCross/MvvmCross-Samples/tree/master/TipCalc

    【讨论】:

    • 感谢您的回答。我将尝试遵循示例。过时的样本是找到正确事物的大问题。那么在共享项目中使用相同的方式会起作用吗?使用 App.cs 注册并在每个项目中实现接口设置?或者我必须选择一个 PCL 并在我的共享项目中引用它?
    • 我对共享项目的经验并不多,但至少 wiki 说宁愿在 PCL 上转发:github.com/MvvmCross/MvvmCross-Forms/wiki/…
    • 虽然这是表单部分。如果共享项目中没有可用的方法,那么您必须坚持使用 PCL。
    猜你喜欢
    • 2018-05-04
    • 2018-10-11
    • 2018-04-11
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    • 2012-05-01
    相关资源
    最近更新 更多