/// <summary> /// Tries to create a new StandardUserDataEventDescriptor, returning <c>null</c> in case the method is not /// visible to script code. /// </summary> /// <param name="ei">The EventInfo.</param> /// <param name="accessMode">The <see cref="InteropAccessMode" /></param> /// <returns>A new StandardUserDataEventDescriptor or null.</returns> public static EventMemberDescriptor TryCreateIfVisible(EventInfo ei, InteropAccessMode accessMode) { if (!CheckEventIsCompatible(ei, false)) return null; if (ei.GetVisibilityFromAttributes() ?? (ei.GetAddMethod().IsPublic && ei.GetRemoveMethod().IsPublic)) return new EventMemberDescriptor(ei, accessMode); return null; }
/// <summary> /// Tries to create a new StandardUserDataEventDescriptor, returning <c>null</c> in case the method is not /// visible to script code. /// </summary> /// <param name="ei">The EventInfo.</param> /// <param name="accessMode">The <see cref="InteropAccessMode" /></param> /// <returns>A new StandardUserDataEventDescriptor or null.</returns> public static EventMemberDescriptor TryCreateIfVisible(EventInfo ei, InteropAccessMode accessMode) { if (!CheckEventIsCompatible(ei, false)) return null; MethodInfo addm = ei.GetAddMethod(); MethodInfo remm = ei.GetRemoveMethod(); if (ei.GetVisibilityFromAttributes() ?? ((remm != null && remm.IsPublic) && (addm != null && addm.IsPublic))) return new EventMemberDescriptor(ei, accessMode); return null; }