如何在 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));
我正在使用 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));