Преобразовать событие без событий с использованием vasember.fromeventC#

Место общения программистов C#
Ответить
Anonymous
 Преобразовать событие без событий с использованием vasember.fromevent

Сообщение Anonymous »

Я борюсь с преобразованием следующего события в iobServable < /code>: < /p>

Код: Выделить всё

public delegate void _dispSolutionEvents_OpenedEventHandler();
event _dispSolutionEvents_OpenedEventHandler Opened;
< /code>

Событие происходит из библиотеки, поэтому я не могу ее изменить.
перегрузка iobservable.fromevent < /code>, что должно сделать, у него есть следующие Подпись: < /p>

public static IObservable FromEvent
( Action addHandler
, Action removeHandler
)
< /code>

Поэтому я попытался преобразовать событие, как это: < /p>

var opened = Observable.FromEvent
( h => _SolutionEvents.Opened += h
, h => _SolutionEvents.Opened -= h
);
Но компилятор не любит _solutionevents.opened += h и _solutionevents.opened += h , потому что


не может неявно преобразовать тип 'System.action' в 'Envdte._dispsolutionEvents_openedEventhandler'.

Код: Выделить всё

_SolutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler(h)
Потому что тогда удаление не сработает, потому что у меня есть другой экземпляр, верно? Подпись: < /p>

public static IObservable FromEvent
( Func conversion
, Action addHandler
, Action removeHandler
)
< /code>

Это позволяет преобразовать действие в обработчик событий, но, похоже, работает только с Teventargs < /code>. < /p>

Отсутствует ли Rx подходящая перегрузка или я что -то упускаю?

Подробнее здесь: https://stackoverflow.com/questions/358 ... -fromevent
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»