Проблема в том, что события не выставляют операцию "повышения" * - они выставляют "подписаться" и "отписаться". Это зависит от реализации, как они реализуют подписку / отписку.
Однако, в случае SaveFileDialog
(или любого FileDialog
) есть защищенный метод OnFileOk
, который вызовет событие. Вы можете либо получить из SafeFileDialog
и предоставить публичный метод, который будет вызывать OnFileOk
, либо просто вызвать OnFileOk
с помощью отражения. Затем будут вызваны обработчики событий для FileOk
. Я не уверен, что мне особенно нравится какой-либо из этих планов атаки, но без дополнительной информации о том, что вы пытаетесь сделать, я подумал, что просто отвечу на вопрос вместо того, чтобы задавать слишком много вопросов:)
*
На самом деле, в самом .NET есть идея «поднять» часть события, следовательно, EventInfo.GetRaiseMethod
. Однако это идет вразрез с общей идеей события IMO, и компилятор C # никогда не генерирует часть повышения. Я не верю, что стандартные библиотеки обычно это раскрывают.