using System; using System.Reflection; public delegate long MyDelegate (); public interface X { event MyDelegate Foo; int Prop { get; } } public class Y : X { event MyDelegate X.Foo { add { } remove { } } int X.Prop { get { return 1; } } public event MyDelegate Foo; public static int Main () { MethodInfo o = typeof (Y).GetMethod ("X.add_Foo", BindingFlags.NonPublic | BindingFlags.Instance); if (o == null) return 1; o = typeof (Y).GetMethod ("X.get_Prop", BindingFlags.NonPublic | BindingFlags.Instance); if (o == null) return 2; Console.WriteLine ("OK"); return 0; } }