Я хочу знать, как я иду об удалении отдельных делегатов из списка вызова родительского делегата.
<DelegateName>.RemoveAll();
Теперь я могу просто удалить все, и это будет работать только, чтобы получить идею в движении и видеть, если работы, которые это должно, но затем любым удаленным делегатам будет нужно добавление снова в RunTime!!!
так:...
foreach(Delegate d in <DelegateName>.getInvocationList)
{ // do something with 'D'?? }
Теперь, когда у меня есть доступ к 'D', я могу бросить его в.Remove (), но его requies два аргумента??? Я мог получить некоторую справку с этим?
Наконец, после того как делегат был удален, что лучший способ состоит в том, чтобы повторно добавить его снова? Таким образом, я предполагаю, что Отражение могло бы играть роль в этом, но Вам парни.
ОБНОВЛЕНИЕ:
По существу существует глобальный делегат, который имеет много событий, живущих в различных классах winforms, которые являются экземплярами его. Все эти события имеют обработчик, который обрабатывает событие, когда оно запущено. Делегат полностью наверху управляет всеми обработчиками, которые соответствуют его подписи, запущены. Я хочу иметь предосудительные отношения с этим делегатом наверху, я хочу удалить все обработчики и затем повторно добавить их во время выполнения. Таким образом, делегат наверху является многоадресным делегатом, и его список вызова является списком отдельных делегатов, которые в свою очередь указывают на один из четырех обработчиков, что я добавил. Я надеюсь, что это имеет смысл, это - общее представление о том, что, я делаю.