【发布时间】:2019-08-21 18:20:37
【问题描述】:
首先,GetInvocationList() 不起作用,因为我希望能够从课堂外找到他们。我认为它将与一些反射魔法一起工作,这就是我想要弄清楚的。
这是我现在拥有的:
fooEventDispatcher.GetType().GetField("FooEvent", BindingFlags.Instance | BindingFlags.NonPublic);
var field = fieldInfo.GetValue(fooEventDispatcher);
我只是不知道如何处理field。有什么想法吗?
【问题讨论】:
-
您能告诉我们查看调用列表的目的是什么吗?根据目的,可能有比反射更简单的方法来获得您想要的结果。
-
@Joel:我想对一个对象正在订阅一个事件进行单元测试。测试调用的副作用并不是一个干净的解决方案。
-
为什么 GetInvocationList() 不起作用?这是一个公共方法,任何来自外部的人都可以调用该方法,除非您的类在程序集内部。
-
@ferosekhanj:你不能使用这样的事件。在课堂之外你唯一能做的就是
+=和-=。 -
对不起,我误解了我在考虑公共代表而不是事件的问题。
标签: c# reflection