GetAddMethod() public method

public GetAddMethod ( bool nonPublic ) : MethodInfo
nonPublic bool
return MethodInfo
Esempio n. 1
0
        private static EventInfo?GetBaseEventDefinition(RuntimeEventInfo evt)
        {
            MethodInfo?method = evt.GetAddMethod(true);

            if (method == null || !method.IsVirtual)
            {
                method = evt.GetRaiseMethod(true);
            }
            if (method == null || !method.IsVirtual)
            {
                method = evt.GetRemoveMethod(true);
            }
            if (method == null || !method.IsVirtual)
            {
                return(null);
            }

            MethodInfo baseMethod = ((RuntimeMethodInfo)method).GetBaseMethod();

            if (baseMethod != null && baseMethod != method)
            {
                BindingFlags flags = method.IsPublic ? BindingFlags.Public : BindingFlags.NonPublic;
                flags |= method.IsStatic ? BindingFlags.Static : BindingFlags.Instance;

                return(baseMethod.DeclaringType !.GetEvent(evt.Name, flags));
            }
            return(null);
        }