/// <summary> /// /// </summary> /// <param name="entityType"></param> /// <param name="attributeType"></param> /// <param name="inheritedAttributes"></param> /// <returns></returns> public static MemberInfo[] LoadAttributedMembers(Type entityType, Type attributeType, bool inheritedAttributes) { ReflectionDefinition definition; if (!_reflectionDefinitions.TryGetValue(entityType, out definition)) { definition = new ReflectionDefinition(entityType); _reflectionDefinitions[entityType] = definition; } #if DEBUG Console.WriteLine("Loading Members for {0}", entityType.FullName); #endif if (definition.AttributedMembers.ContainsKey(attributeType)) { return(definition.AttributedMembers[attributeType]); } else { var members = new List <MemberInfo>(); foreach (var member in entityType.GetMembers()) { #if DEBUG Console.WriteLine("\tMember: {0}", member.Name); #endif var attributes = member.GetCustomAttributes(attributeType, inheritedAttributes); if (attributes != null && attributes.Length > 0) { members.Add(member); } #if DEBUG foreach (var attribute in attributes) { Console.WriteLine("\t\tAttribute: {0}", attribute.GetType().FullName); } #endif } return(members.ToArray()); } }
/// <summary> /// /// </summary> /// <param name="entityType"></param> /// <param name="attributeType"></param> /// <param name="inheritedAttributes"></param> /// <returns></returns> public static MemberInfo[] LoadAttributedMembers(Type entityType, Type attributeType, bool inheritedAttributes) { ReflectionDefinition definition; if (!_reflectionDefinitions.TryGetValue(entityType, out definition)) { definition = new ReflectionDefinition(entityType); _reflectionDefinitions[entityType] = definition; } #if DEBUG Console.WriteLine("Loading Members for {0}", entityType.FullName); #endif if (definition.AttributedMembers.ContainsKey(attributeType)) { return definition.AttributedMembers[attributeType]; } else { var members = new List<MemberInfo>(); foreach (var member in entityType.GetMembers()) { #if DEBUG Console.WriteLine("\tMember: {0}", member.Name); #endif var attributes = member.GetCustomAttributes(attributeType, inheritedAttributes); if (attributes != null && attributes.Length > 0) members.Add(member); #if DEBUG foreach (var attribute in attributes) { Console.WriteLine("\t\tAttribute: {0}", attribute.GetType().FullName); } #endif } return members.ToArray(); } }
protected internal RuntimeValue_Reflection(Engine eng, WireProtocol.Commands.Debugging_Value handle) : base(eng, handle) { m_rd = (ReflectionDefinition)System.Runtime.Serialization.FormatterServices.GetUninitializedObject(typeof(ReflectionDefinition)); m_eng.CreateConverter().Deserialize(m_rd, handle.m_builtinValue); }
protected internal RuntimeValue_Reflection( Engine eng, WireProtocol.Commands.Debugging_Value handle ) : base( eng, handle ) { m_rd = (ReflectionDefinition)System.Runtime.Serialization.FormatterServices.GetUninitializedObject( typeof(ReflectionDefinition) ); m_eng.CreateConverter().Deserialize( m_rd, handle.m_builtinValue ); }