AjaxControlToolkit.ControlDependencyMap.GetMemberTypes C# (CSharp) Метод

GetMemberTypes() статический приватный Метод

static private GetMemberTypes ( MemberInfo memberInfo ) : IEnumerable
memberInfo System.Reflection.MemberInfo
Результат IEnumerable
        static IEnumerable<Type> GetMemberTypes(MemberInfo memberInfo)
        {
            Type type = null;

            switch (memberInfo.MemberType) {
                case MemberTypes.Event:
                    type = ((EventInfo)memberInfo).EventHandlerType;
                    break;
                case MemberTypes.Field:
                    type = ((FieldInfo)memberInfo).FieldType;
                    break;
                case MemberTypes.Method:
                    type = ((MethodInfo)memberInfo).ReturnType;
                    break;
                case MemberTypes.Property:
                    type = ((PropertyInfo)memberInfo).PropertyType;
                    break;
                case MemberTypes.NestedType:
                    // Special case for nested type, we will iterate the nested members here
                    var members = ((Type)memberInfo).GetMembers();
                    var ntypes = new List<Type>();
                    foreach (var m in members) {
                        var mtypes = GetMemberTypes(m).Where(x => !ntypes.Contains(x));
                        ntypes.AddRange(mtypes);
                    }

                    return ntypes.ToArray();
            }
            return new[] { type };
        }