我想知道如何去除父代表的调用列表中的各个委托。如何在运行时操作委托的调用列表?
<DelegateName>.RemoveAll();
现在我就可以删除所有,并且将工作只是为了让这个想法在运动和看的作品,它应该,但随后的任何委托删除在运行时需要再次加入!
这样:...
foreach(Delegate d in <DelegateName>.getInvocationList)
{ // do something with 'D'?? }
现在,我有机会获得“d”我可以将其放到一个卸下摆臂(),但它requies两个参数???请给我一些帮助吗?
最后,一旦委托被删除,重新添加它的最佳方式是什么? 所以我假设Reflection可能会在这个方面发挥作用,但对你们来说。
UPDATE:
本质上说是有许多事件在生活是它的实例不同的WinForms类全局委托。所有这些事件都有一个处理器,当它被触发时处理事件。代表队一直在最高层管理与其签名匹配的所有处理程序被解雇。我想在顶部讨论这个委托,我想删除所有的处理程序,然后在运行时重新添加它们。所以上面的委托是一个多播委托,它的调用列表是一个单独的委托列表,它们又指向我已经添加的四个处理器之一。我希望这是有道理的,这是我正在做什么的一般概念。
委托或事件? – 2010-08-03 13:13:21