private AccessModifier[] getAccessModifiers(IBCLUserType bclUserType, bool isInterface) { List <AccessModifier> list = new List <AccessModifier>(); Type type = Type.GetType(bclUserType.Name); MemberInfo[] members = type.GetMembers(BindingFlags.Instance | BindingFlags.Public); foreach (MemberInfo member in members) { // * Duck typing :-) IMemberType memberType = (IMemberType)bclUserType.GetType().GetMethod("FindMember").Invoke(bclUserType, new object[] { member.Name }); AccessModifier accessModifier = new AccessModifier(Introspection.getMethodModifierList(member), member.Name, memberType, isInterface); list.Add(accessModifier); } AccessModifier[] result = new AccessModifier[list.Count]; list.CopyTo(result); return(result); }
/// <summary> /// Constructor of Introspection. /// </summary> /// <param name="userType">The user type of the type system</param> /// <param name="type">WriteType name to introspection.</param> public Introspection(IBCLUserType userType, Type type) { this.reflectionType = type; this.userType = userType; }