私はそのような拡張機能を持っています...
public static class EventLibrary
{
[EventCollection]
public static Event Sequence(this Event ev)
{
ev.Started += (args) =>
{
// do something!
}
}
}
次に、イベント内で、次を使用してデリゲート サブスクライバーを調べます...
var dels = new List<Delegate[]>();
if (Started != null)
dels.Add(Started.GetInvocationList());
その理由は、この例のように、クロージャーを作成した関数に属性があるかどうかを検出しようとするためですEventCollection
。Delegate オブジェクトでは、 と の両方が次のようなものDelcaringType
をReflectedType
返しますEventLibrary+<Sequence>c_AnonStorey1
が、これは私の知る限りです。
文字列操作なしでこれをやりたいのですが、それが可能かどうかはわかりません...誰か知っていますか?