如何解决使用 Microsoft.Practices.Unity 以 xamrain 形式执行 injectionParamter
我正在使用 MVVM 架构开发 xamarin 表单应用程序,一开始,我将视图、模型、视图模型分离到 PLC 项目内的文件夹中。当我生成 apk 时,它在设备或其他云模拟器上工作正常。但是,我有义务将程序集中的文件夹(ViewModel、服务...)分开,并取消对 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 类实例明确指示参数类型。
解决方法
我找到了解决方案,我只是添加了如何管理可空值
BindingContext = App.unityContainer.Resolve<ViewModel>(new ParameterOverride("proxy",proxy != null ? proxy : string.Empty));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。