示例#1
0
        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;
 }