Ejemplo n.º 1
0
		internal MissingTypeParameter(MemberInfo owner, int index)
		{
			this.owner = owner;
			this.index = index;
		}
Ejemplo n.º 2
0
		internal MissingMemberException(MemberInfo member)
			: base("Member '" + member + "' is a missing member and does not support the requested operation.")
		{
			this.member = member;
		}
		public static IList<CustomAttributeData> __GetCustomAttributes(MemberInfo member, Type attributeType, bool inherit)
		{
			if (!member.IsBaked)
			{
				// like .NET we we don't return custom attributes for unbaked members
				throw new NotImplementedException();
			}
			if (!inherit || !IsInheritableAttribute(attributeType))
			{
				return GetCustomAttributesImpl(null, member, attributeType) ?? EmptyList;
			}
			List<CustomAttributeData> list = new List<CustomAttributeData>();
			for (; ; )
			{
				GetCustomAttributesImpl(list, member, attributeType);
				Type type = member as Type;
				if (type != null)
				{
					type = type.BaseType;
					if (type == null)
					{
						return list;
					}
					member = type;
					continue;
				}
				MethodInfo method = member as MethodInfo;
				if (method != null)
				{
					MemberInfo prev = member;
					method = method.GetBaseDefinition();
					if (method == null || method == prev)
					{
						return list;
					}
					member = method;
					continue;
				}
				return list;
			}
		}
		private static List<CustomAttributeData> GetCustomAttributesImpl(List<CustomAttributeData> list, MemberInfo member, Type attributeType)
		{
			if (member.Module.universe.ReturnPseudoCustomAttributes)
			{
				List<CustomAttributeData> pseudo = member.GetPseudoCustomAttributes(attributeType);
				if (list == null)
				{
					list = pseudo;
				}
				else if (pseudo != null)
				{
					list.AddRange(pseudo);
				}
			}
			return GetCustomAttributesImpl(list, member.Module, member.GetCurrentToken(), attributeType);
		}
Ejemplo n.º 5
0
		public static IList<CustomAttributeData> __GetCustomAttributes(MemberInfo member, Type attributeType, bool inherit)
		{
			if (!inherit || !IsInheritableAttribute(attributeType))
			{
				return member.GetCustomAttributesData(attributeType);
			}
			List<CustomAttributeData> list = new List<CustomAttributeData>();
			for (; ; )
			{
				list.AddRange(member.GetCustomAttributesData(attributeType));
				Type type = member as Type;
				if (type != null)
				{
					type = type.BaseType;
					if (type == null)
					{
						return list;
					}
					member = type;
					continue;
				}
				MethodInfo method = member as MethodInfo;
				if (method != null)
				{
					MemberInfo prev = member;
					method = method.GetBaseDefinition();
					if (method == null || method == prev)
					{
						return list;
					}
					member = method;
					continue;
				}
				return list;
			}
		}
		public static IList<CustomAttributeData> GetCustomAttributes(MemberInfo member)
		{
			return __GetCustomAttributes(member, null, false);
		}
Ejemplo n.º 7
0
 static bool HasExtensionAttribute(MemberInfo provider)
 {
     foreach (var attr in provider.CustomAttributes) {
         if (attr.AttributeType.Name == "ExtensionAttribute" && attr.AttributeType.Namespace == "System.Runtime.CompilerServices")
             return true;
     }
     return false;
 }
Ejemplo n.º 8
0
 internal ParameterInfoWrapper(MemberInfo member, ParameterInfo forward)
 {
     this.member  = member;
     this.forward = forward;
 }
Ejemplo n.º 9
0
 void FinishReadMember(AbstractUnresolvedMember member, MemberInfo ikvmDefinition)
 {
     member.ApplyInterningProvider(interningProvider);
     member.Freeze();
     RegisterCecilObject(member, ikvmDefinition);
 }
Ejemplo n.º 10
0
 void RegisterCecilObject(IUnresolvedEntity typeSystemObject, MemberInfo cecilObject)
 {
     if (OnEntityLoaded != null)
         OnEntityLoaded(typeSystemObject, cecilObject);
 }
Ejemplo n.º 11
0
		private MissingTypeParameter(MemberInfo owner, int index, byte sigElementType)
			: base(sigElementType)
		{
			this.owner = owner;
			this.index = index;
		}
Ejemplo n.º 12
0
		internal ParameterInfoWrapper(MemberInfo member, ParameterInfo forward)
		{
			this.member = member;
			this.forward = forward;
		}
Ejemplo n.º 13
0
 internal MissingMemberException(MemberInfo member)
     : base("Member '" + member + "' is a missing member and does not support the requested operation.")
 {
     this.member = member;
 }
		internal CustomAttributeNamedArgument(MemberInfo member, CustomAttributeTypedArgument value)
		{
			this.member = member;
			this.value = value;
		}
Ejemplo n.º 15
0
		public static IList<CustomAttributeData> GetCustomAttributes(MemberInfo member)
		{
			return member.GetCustomAttributesData(null);
		}
Ejemplo n.º 16
0
		private static void AddMembers(List<MemberInfo> list, MemberFilter filter, object filterCriteria, MemberInfo[] members)
		{
			foreach (MemberInfo member in members)
			{
				if (filter == null || filter(member, filterCriteria))
				{
					list.Add(member);
				}
			}
		}
Ejemplo n.º 17
0
 public static IList <CustomAttributeData> GetCustomAttributes(MemberInfo member)
 {
     return(member.GetCustomAttributesData(null));
 }