我有一个扩展功能......
public static class EventLibrary
{
[EventCollection]
public static Event Sequence(this Event ev)
{
ev.Started += (args) =>
{
// do something!
}
}
}
然后,在 Event 内部,我使用以下命令查看委托订阅者...
var dels = new List<Delegate[]>();
if (Started != null)
dels.Add(Started.GetInvocationList());
原因是尝试检测创建闭包的函数是否具有属性,如本例所示EventCollection
。在 Delegate 对象上,两者都DelcaringType
返回类似的ReflectedType
东西,EventLibrary+<Sequence>c_AnonStorey1
但据我所知。
我很想在没有任何字符串操作的情况下做到这一点,但我不确定这是否可能......有人知道吗?