簡體   English   中英

C#反思:如何獲得私人活動?

[英]C# reflection: How to get a private event?

是否可以使用反射獲取類的私有事件? 下面的代碼無法獲取該事件:

//class having a private Event.
public class Sample
{
    private delegate void MyDelegate(string ip4);
    private event MyDelegate MyEvent;
}

internal class Program
{
    private static void Main(string[] args)
    {
        //try getting the non-public event
        EventInfo[] events = typeof (Sample).GetEvents(BindingFlags.NonPublic);
        Console.WriteLine(events.Length); //it's 0
        var evt = typeof (Sample).GetEvent("MyEvent", BindingFlags.NonPublic); //evt is null
    }
}

您還需要指定BindingFlags.Instance ..

var evt = typeof (Sample)
  .GetEvent("MyEvent", BindingFlags.NonPublic | BindingFlags.Instance); //evt is null
var evt = typeof(Sample).GetEvent("MyEvent", BindingFlags.NonPublic | BindingFlags.Instance);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM