| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Как сделать событие на Invoke заданного метода |
| Автор: marcusmae 24.8.2006, 19:25 | ||
Допустим, у нас есть класс с определённым в нём внешним методом :
Можно ли в унаследованном от А классе сделать событие, возникающее на Invoke метода Method? |
| Автор: mr.DUDA 24.8.2006, 23:09 |
| Если только вызывать Method из другого метода, который в свою очередь генерит некое событие. А чтобы никто не смог добраться извне до метода Method, можно завернуть его во вложенный класс с модификатором private. |
| Автор: marcusmae 24.8.2006, 23:32 |
| В том-то и дело, что метод должен быть public, и при его вызове должно возникать событие. Я немного полазил по System.Reflection.Emit.* и выяснил, что можно динамически изменять тела методов и много ещё чего крутить (в моём случае, наверно, можно было бы тело метода сбросить в новый, а на его месте генерить событие или как-то иначе). В общем, потрясающе. Только примеров использования из MSDN недостаточно, и я подумал, может, кто-то хорошо владеет этим. |
| Автор: ivashkanet 25.8.2006, 09:13 | ||
marcusmae, Дуда имеет ввиду такую штуку:
|
| Автор: marcusmae 30.8.2006, 15:49 | ||
Обнаружил несколько более рутинный, но вместе с тем и более органичный способ. Он заключается в переопределении GetType() и возврате из него класса, унаследованного от Type, в котором событие можно создавать в вызове метода InvokeMember:
|