summaryrefslogtreecommitdiff
path: root/src/mscorlib/src/System/Reflection/EventInfo.cs
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2017-04-13 14:17:19 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2017-04-13 14:17:19 +0900
commita56e30c8d33048216567753d9d3fefc2152af8ac (patch)
tree7e5d979695fc4a431740982eb1cfecc2898b23a5 /src/mscorlib/src/System/Reflection/EventInfo.cs
parent4b11dc566a5bbfa1378d6266525c281b028abcc8 (diff)
downloadcoreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.gz
coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.tar.bz2
coreclr-a56e30c8d33048216567753d9d3fefc2152af8ac.zip
Imported Upstream version 2.0.0.11353upstream/2.0.0.11353
Diffstat (limited to 'src/mscorlib/src/System/Reflection/EventInfo.cs')
-rw-r--r--src/mscorlib/src/System/Reflection/EventInfo.cs401
1 files changed, 0 insertions, 401 deletions
diff --git a/src/mscorlib/src/System/Reflection/EventInfo.cs b/src/mscorlib/src/System/Reflection/EventInfo.cs
deleted file mode 100644
index 9b529c2960..0000000000
--- a/src/mscorlib/src/System/Reflection/EventInfo.cs
+++ /dev/null
@@ -1,401 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-//
-
-namespace System.Reflection
-{
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Diagnostics.Contracts;
- using System.Runtime.InteropServices;
- using System.Runtime.Serialization;
- using System.Runtime.ConstrainedExecution;
- using RuntimeTypeCache = System.RuntimeType.RuntimeTypeCache;
-
- [Serializable]
- public abstract class EventInfo : MemberInfo
- {
- #region Constructor
- protected EventInfo() { }
- #endregion
-
- public static bool operator ==(EventInfo left, EventInfo right)
- {
- if (ReferenceEquals(left, right))
- return true;
-
- if ((object)left == null || (object)right == null ||
- left is RuntimeEventInfo || right is RuntimeEventInfo)
- {
- return false;
- }
- return left.Equals(right);
- }
-
- public static bool operator !=(EventInfo left, EventInfo right)
- {
- return !(left == right);
- }
-
- public override bool Equals(object obj)
- {
- return base.Equals(obj);
- }
-
- public override int GetHashCode()
- {
- return base.GetHashCode();
- }
-
- #region MemberInfo Overrides
- public override MemberTypes MemberType { get { return MemberTypes.Event; } }
- #endregion
-
- #region Public Abstract\Virtual Members
- public virtual MethodInfo[] GetOtherMethods(bool nonPublic)
- {
- throw new NotImplementedException();
- }
-
- public abstract MethodInfo GetAddMethod(bool nonPublic);
-
- public abstract MethodInfo GetRemoveMethod(bool nonPublic);
-
- public abstract MethodInfo GetRaiseMethod(bool nonPublic);
-
- public abstract EventAttributes Attributes { get; }
- #endregion
-
- #region Public Members
- public virtual MethodInfo AddMethod
- {
- get
- {
- return GetAddMethod(true);
- }
- }
-
- public virtual MethodInfo RemoveMethod
- {
- get
- {
- return GetRemoveMethod(true);
- }
- }
-
- public virtual MethodInfo RaiseMethod
- {
- get
- {
- return GetRaiseMethod(true);
- }
- }
-
- public MethodInfo[] GetOtherMethods() { return GetOtherMethods(false); }
-
- public MethodInfo GetAddMethod() { return GetAddMethod(false); }
-
- public MethodInfo GetRemoveMethod() { return GetRemoveMethod(false); }
-
- public MethodInfo GetRaiseMethod() { return GetRaiseMethod(false); }
-
- [DebuggerStepThroughAttribute]
- [Diagnostics.DebuggerHidden]
- public virtual void AddEventHandler(Object target, Delegate handler)
- {
- MethodInfo addMethod = GetAddMethod();
-
- if (addMethod == null)
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NoPublicAddMethod"));
-
-#if FEATURE_COMINTEROP
- if (addMethod.ReturnType == typeof(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken))
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NotSupportedOnWinRTEvent"));
-
- // Must be a normal non-WinRT event
- Debug.Assert(addMethod.ReturnType == typeof(void));
-#endif // FEATURE_COMINTEROP
-
- addMethod.Invoke(target, new object[] { handler });
- }
-
- [DebuggerStepThroughAttribute]
- [Diagnostics.DebuggerHidden]
- public virtual void RemoveEventHandler(Object target, Delegate handler)
- {
- MethodInfo removeMethod = GetRemoveMethod();
-
- if (removeMethod == null)
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NoPublicRemoveMethod"));
-
-#if FEATURE_COMINTEROP
- ParameterInfo[] parameters = removeMethod.GetParametersNoCopy();
- Debug.Assert(parameters != null && parameters.Length == 1);
-
- if (parameters[0].ParameterType == typeof(System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken))
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NotSupportedOnWinRTEvent"));
-
- // Must be a normal non-WinRT event
- Debug.Assert(parameters[0].ParameterType.BaseType == typeof(MulticastDelegate));
-#endif // FEATURE_COMINTEROP
-
- removeMethod.Invoke(target, new object[] { handler });
- }
-
- public virtual Type EventHandlerType
- {
- get
- {
- MethodInfo m = GetAddMethod(true);
-
- ParameterInfo[] p = m.GetParametersNoCopy();
-
- Type del = typeof(Delegate);
-
- for (int i = 0; i < p.Length; i++)
- {
- Type c = p[i].ParameterType;
-
- if (c.IsSubclassOf(del))
- return c;
- }
- return null;
- }
- }
- public bool IsSpecialName
- {
- get
- {
- return(Attributes & EventAttributes.SpecialName) != 0;
- }
- }
-
- public virtual bool IsMulticast
- {
- get
- {
- Type cl = EventHandlerType;
- Type mc = typeof(MulticastDelegate);
- return mc.IsAssignableFrom(cl);
- }
- }
- #endregion
- }
-
- [Serializable]
- internal unsafe sealed class RuntimeEventInfo : EventInfo, ISerializable
- {
- #region Private Data Members
- private int m_token;
- private EventAttributes m_flags;
- private string m_name;
- private void* m_utf8name;
- private RuntimeTypeCache m_reflectedTypeCache;
- private RuntimeMethodInfo m_addMethod;
- private RuntimeMethodInfo m_removeMethod;
- private RuntimeMethodInfo m_raiseMethod;
- private MethodInfo[] m_otherMethod;
- private RuntimeType m_declaringType;
- private BindingFlags m_bindingFlags;
- #endregion
-
- #region Constructor
- internal RuntimeEventInfo()
- {
- // Used for dummy head node during population
- }
- internal RuntimeEventInfo(int tkEvent, RuntimeType declaredType, RuntimeTypeCache reflectedTypeCache, out bool isPrivate)
- {
- Contract.Requires(declaredType != null);
- Contract.Requires(reflectedTypeCache != null);
- Debug.Assert(!reflectedTypeCache.IsGlobal);
-
- MetadataImport scope = declaredType.GetRuntimeModule().MetadataImport;
-
- m_token = tkEvent;
- m_reflectedTypeCache = reflectedTypeCache;
- m_declaringType = declaredType;
-
-
- RuntimeType reflectedType = reflectedTypeCache.GetRuntimeType();
-
- scope.GetEventProps(tkEvent, out m_utf8name, out m_flags);
-
- RuntimeMethodInfo dummy;
- Associates.AssignAssociates(scope, tkEvent, declaredType, reflectedType,
- out m_addMethod, out m_removeMethod, out m_raiseMethod,
- out dummy, out dummy, out m_otherMethod, out isPrivate, out m_bindingFlags);
- }
- #endregion
-
- #region Internal Members
- internal override bool CacheEquals(object o)
- {
- RuntimeEventInfo m = o as RuntimeEventInfo;
-
- if ((object)m == null)
- return false;
-
- return m.m_token == m_token &&
- RuntimeTypeHandle.GetModule(m_declaringType).Equals(
- RuntimeTypeHandle.GetModule(m.m_declaringType));
- }
-
- internal BindingFlags BindingFlags { get { return m_bindingFlags; } }
- #endregion
-
- #region Object Overrides
- public override String ToString()
- {
- if (m_addMethod == null || m_addMethod.GetParametersNoCopy().Length == 0)
- throw new InvalidOperationException(Environment.GetResourceString("InvalidOperation_NoPublicAddMethod"));
-
- return m_addMethod.GetParametersNoCopy()[0].ParameterType.FormatTypeName() + " " + Name;
- }
- #endregion
-
- #region ICustomAttributeProvider
- public override Object[] GetCustomAttributes(bool inherit)
- {
- return CustomAttribute.GetCustomAttributes(this, typeof(object) as RuntimeType);
- }
-
- public override Object[] GetCustomAttributes(Type attributeType, bool inherit)
- {
- if (attributeType == null)
- throw new ArgumentNullException(nameof(attributeType));
- Contract.EndContractBlock();
-
- RuntimeType attributeRuntimeType = attributeType.UnderlyingSystemType as RuntimeType;
-
- if (attributeRuntimeType == null)
- throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"),nameof(attributeType));
-
- return CustomAttribute.GetCustomAttributes(this, attributeRuntimeType);
- }
-
- public override bool IsDefined(Type attributeType, bool inherit)
- {
- if (attributeType == null)
- throw new ArgumentNullException(nameof(attributeType));
- Contract.EndContractBlock();
-
- RuntimeType attributeRuntimeType = attributeType.UnderlyingSystemType as RuntimeType;
-
- if (attributeRuntimeType == null)
- throw new ArgumentException(Environment.GetResourceString("Arg_MustBeType"),nameof(attributeType));
-
- return CustomAttribute.IsDefined(this, attributeRuntimeType);
- }
-
- public override IList<CustomAttributeData> GetCustomAttributesData()
- {
- return CustomAttributeData.GetCustomAttributesInternal(this);
- }
- #endregion
-
- #region MemberInfo Overrides
- public override MemberTypes MemberType { get { return MemberTypes.Event; } }
- public override String Name
- {
- get
- {
- if (m_name == null)
- m_name = new Utf8String(m_utf8name).ToString();
-
- return m_name;
- }
- }
- public override Type DeclaringType { get { return m_declaringType; } }
- public override Type ReflectedType
- {
- get
- {
- return ReflectedTypeInternal;
- }
- }
-
- private RuntimeType ReflectedTypeInternal
- {
- get
- {
- return m_reflectedTypeCache.GetRuntimeType();
- }
- }
-
- public override int MetadataToken { get { return m_token; } }
- public override Module Module { get { return GetRuntimeModule(); } }
- internal RuntimeModule GetRuntimeModule() { return m_declaringType.GetRuntimeModule(); }
- #endregion
-
- #region ISerializable
- public void GetObjectData(SerializationInfo info, StreamingContext context)
- {
- if (info == null)
- throw new ArgumentNullException(nameof(info));
- Contract.EndContractBlock();
-
- MemberInfoSerializationHolder.GetSerializationInfo(
- info,
- Name,
- ReflectedTypeInternal,
- null,
- MemberTypes.Event);
- }
- #endregion
-
- #region EventInfo Overrides
- public override MethodInfo[] GetOtherMethods(bool nonPublic)
- {
- List<MethodInfo> ret = new List<MethodInfo>();
-
- if ((object)m_otherMethod == null)
- return new MethodInfo[0];
-
- for(int i = 0; i < m_otherMethod.Length; i ++)
- {
- if (Associates.IncludeAccessor((MethodInfo)m_otherMethod[i], nonPublic))
- ret.Add(m_otherMethod[i]);
- }
-
- return ret.ToArray();
- }
-
- public override MethodInfo GetAddMethod(bool nonPublic)
- {
- if (!Associates.IncludeAccessor(m_addMethod, nonPublic))
- return null;
-
- return m_addMethod;
- }
-
- public override MethodInfo GetRemoveMethod(bool nonPublic)
- {
- if (!Associates.IncludeAccessor(m_removeMethod, nonPublic))
- return null;
-
- return m_removeMethod;
- }
-
- public override MethodInfo GetRaiseMethod(bool nonPublic)
- {
- if (!Associates.IncludeAccessor(m_raiseMethod, nonPublic))
- return null;
-
- return m_raiseMethod;
- }
-
- public override EventAttributes Attributes
- {
- get
- {
- return m_flags;
- }
- }
- #endregion
- }
-
-}