Мне было интересно о EventInfo.GetRaiseMethod
и EventInfo.GetOtherMethods
. По-видимому, CLR поддерживает 4 вида методов, связанных с событиями: добавление, удаление, повышение и "другие". Но события, созданные на С#, только добавляются и удаляются... Я предположил, что рейз использовался в VB, так как вы должны указать метод RaiseEvent
при объявлении пользовательского события, но, по-видимому, это не так: GetRaiseMethod
всегда возвращает null.
Итак, кто-нибудь знает:
- Какой смысл иметь метод повышения, связанный с событием, если он никогда не использовался? Существует ли конкретная инструкция MSIL для создания события с использованием этого метода? (Я не могу найти ничего подобного в кодах операций)
- Какие возвращаемые методы "другие" (ну, на самом деле не возвращены) на
GetOtherMethods
? Что они должны делать? - Существуют ли типы BCL, которые реализуют эти специальные методы?