Я уверен, что я что-то упустил или загнал себя в какой-то странный неудовлетворенный угол, но вот что я пытаюсь сделать.
У меня есть приложение WPF, использующее Unity в качестве IoC. У меня есть ряд сервисов, которые имеют интерфейс. Я работаю со своими сервисами через интерфейсы, чтобы сервисы можно было легко заменить или чтобы я мог предложить выбор конечному пользователю. Все стандартные вещи для программирования интерфейсов.
На самом деле все мои сервисы реализуют ReactiveObject. Теперь я хочу сделать некоторые вещи для обработки команд и пытаюсь заставить работать поведение CanExecute.
Моя основная проблема заключается в том, что я не могу использовать WhenAny, если не приведу интерфейс к физической реализации (таким образом, получу полную иерархию типов для компиляции, которая может видеть WhenAny). Однако это приведение нарушает интерфейсы и означает, что я теряю возможность менять реализации.
Существует ли интерфейс ReactiveUI, который предоставляет WhenAny и т. Д., Из которого я мог бы получить свои сервисные интерфейсы и, таким образом, иметь возможность использовать замечательные функции ReactiveUI, оставаясь при этом неспецифическим для типа?