Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有多个项目的MVVM Xamarin_Android_Xamarin_Mvvm_Constructor_Interface - Fatal编程技术网

Android 具有多个项目的MVVM Xamarin

Android 具有多个项目的MVVM Xamarin,android,xamarin,mvvm,constructor,interface,Android,Xamarin,Mvvm,Constructor,Interface,你好,我是一名学生,正在做一个项目。这是一个Xamarin本地项目(跨平台)。我使用MVVM。当我使用1个共享项目和我的3个其他项目(android、iOS、winphone)时,它工作得非常好。现在我的共享代码有了不同的项目 -Appname.Repositories -Appname.Services -Appname.Viewmodel 现在的问题是,当我在我的viewmodel中使用带有接口的构造函数启动我的应用程序时,他给了我下一个错误: //建造师 public LoginViewM

你好,我是一名学生,正在做一个项目。这是一个Xamarin本地项目(跨平台)。我使用MVVM。当我使用1个共享项目和我的3个其他项目(android、iOS、winphone)时,它工作得非常好。现在我的共享代码有了不同的项目

-Appname.Repositories

-Appname.Services

-Appname.Viewmodel

现在的问题是,当我在我的viewmodel中使用带有接口的构造函数启动我的应用程序时,他给了我下一个错误:

//建造师

public LoginViewModel(IMvxMessenger messenger, IUserDataService userDataService) : base(messenger)
        {
            _userDataService = userDataService;
        }
错误:

MvvmCross.Platform.Exceptions.MvxException:无法从定位器MvxDefaultViewModelLocator为类型C_Tracker.Mobile.Domain.ViewModel.LoginViewModel构造和初始化ViewModel-有关详细信息,请检查InnerException

内部异常:

MvvmCross.Platform.Exceptions.MvxIoCResolveException:无法解析IUserDataService类型的参数userDataService的参数

但是当我使用一个没有这个接口的构造函数时,它就工作了

public LoginViewModel(IMvxMessenger messenger) : base(messenger)
        {

        }

请帮帮我。

你可能忘记了依赖注入。 向Setup.cs添加类似以下内容
Mvx.RegisterType()
有关ServiceLocator的更多信息,请检查