xamarin - Xamarin MVVMCross:注册具有多个接口的类的单例
问题描述
我有一个类实现和 2 个接口 -
Public Interface IVehicle
{
void SelectVehicle(...);
}
Public Interface IDestination
{
void DistanceToDestination(...);
}
Public Class Travel : IVehicle, IDestination
{
}
因为我正在使用MVVMCross
,我知道如何注册一个单例并像这样解决它 -
登记 -Mvx.IoCProvider.RegisterSingleton<IVehicle>(new Travel());
解决 -Mvx.IoCProvider.Resolve<IVehicle>();
有没有办法Travel
用 MVVMCross 中的两个接口注册一个类的单个实例?像这样的东西-
Mvx.IoCProvider.RegisterSingleton<IVehicle, IDestination>(new Travel());
Travel
以及使用两个接口解决单个实例的方法?就像是 -
var travel = Mvx.IoCProvider.Resolve<IVehicle, IDestination>();
travel
并
使用travel.DistanceToDestination(...);
解决方案
而不是在每个寄存器上实例化,只需使用相同的实例:
var travel = new Travel();
Mvx.IoCProvider.RegisterSingleton<IVehicle>(travel);
Mvx.IoCProvider.RegisterSingleton<IDestination>(travel);
然后按预期解决:
var travel = Mvx.IoCProvider.Resolve<IVehicle>();
或者
var travel = Mvx.IoCProvider.Resolve<IDestination>();
推荐阅读
- node.js - Ubuntu/基准本地主机(请耐心等待)...apr_socket_recv:连接被拒绝(111)
- javascript - '+ ((visible && "is-active") || "")' 是一个好习惯吗?
- python - 基于多个属性的智能合约中的搜索记录
- node.js - 如何从 JSON 解析中的 promise 获得响应?
- c++ - 为什么priority_queue pop函数不删除top元素?
- jquery - 为什么 JQuery .hide() 函数不能与引导微调器一起使用?
- django - Django FactoryBoy TestCase 处理嵌套对象创建
- android - java.lang.NullPointerException:在 Release Build 中抛出空异常
- django - 当 ForeignKey 不是自引用时,如何获取 Django 对象的所有祖先?
- java - 可以用给定的字符串数组形成给定的字符串吗?