如何在 xamarin 表单中使用 Microsoft.Practices.Unity 进行注入参数

Haw to do the injectionParamter using Microsoft.Practices.Unity in xamrain forms

我正在使用 MVVM 架构开发 xamarin 表单应用程序,一开始,我在 PLC 项目的文件夹中分离了视图、模型、视图模型。当我生成 apk 时,它在设备或其他云模拟器上运行良好。但是,我有义务将程序集(ViewModels、服务...)中的文件夹分开并取消 Unity IOC 依赖注入。

unityContainer = new UnityContainer();
unityContainer.RegisterType<IService, Service>();
unityContainer.RegisterType<IViewModel, ViewModel>();

viewModel 有一个参数 public ViewModel(string proxy, IService service)

所以在 page.xamal.cs 中,我做了:

BindingContext = App.unityContainer.Resolve<ViewModel>(new ParameterOverride("proxy",proxy));

当我在模拟器上启动应用程序时它工作正常,但在启动 apk 时设备上出现异常 :

System.ArgumentNullException:参数类型推断不适用于空值。 使用正确配置的 InjectionParameter 或 InjectionParameter 类.

实例显式指示参数类型

我找到了解决方案,我只是添加了如何管理可为 null 的值

BindingContext = App.unityContainer.Resolve<ViewModel>(new ParameterOverride("proxy",proxy != null ? proxy : string.Empty));