我确信我已经错过了一些东西或者让自己陷入了一个奇怪的沮丧的角落,但这就是我想要做的。
我有一个WPF应用程序,使用Unity作为IoC。我有许多具有接口的服务。我通过接口处理我的服务,因此可以轻松地交换服务,或者我可以为最终用户提供选择。所有标准接口编程。
实际上,我的所有服务都实现了ReactiveObject。我现在想要做一些命令处理的东西,并试图让CanExecute行为正常工作。
我的基本问题是我不能使用WhenAny,除非我将接口转换为物理实现(因此获得完整的类型层次结构进行编译,可以看到WhenAny)。但是,这种强制转换违反了接口,意味着我失去了交换实现的能力。
是否有ReactiveUI接口公开WhenAny等我可以从中派生我的服务接口,从而能够使用ReactiveUI的强大功能,同时保持非特定类型?
答案 0 :(得分:0)
为什么不能在作为接口的实例上使用WhenAny?从ReactiveUI 4.x开始,WhenAny应该在每个对象上。
如果您仍在使用3.x,则可以编写如下界面:
interface ICoolInterface : IReactiveNotifyPropertyChanged
{
/* ... */
}