AjaxControlToolkit.ControlDependencyMap.SeekDependencies C# (CSharp) 메소드

SeekDependencies() 정적인 개인적인 메소드

static private SeekDependencies ( Type ctlType, List &dependencies ) : void
ctlType System.Type
dependencies List
리턴 void
        static void SeekDependencies(Type ctlType, ref List<Type> dependencies)
        {
            var deps = dependencies;

            // Retrieve all member types which are not in dependency list yet
            var members = ctlType.GetMembers(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static)
                .SelectMany(info => GetMemberTypes(info))
                .Where(m => m != null && m.Namespace != null && m.Namespace.StartsWith("AjaxControlToolkit"))
                .Distinct()
                .Where(m => !deps.Contains(m))
                .ToList();

            // For extender control, we should check also the dependencies of target control type
            foreach (var targetCtlType in ctlType.GetCustomAttributes(true)
                .Where(a => a is TargetControlTypeAttribute)) {

                var targetType = ((TargetControlTypeAttribute)targetCtlType).TargetControlType;
                if (!members.Contains(targetType) && !dependencies.Contains(targetType))
                    members.Add(targetType);
            }

            // Store dependency list
            dependencies.AddRange(members.ToList());

            // Iterate every dependency to find nested dependencies
            foreach (var member in members) {
                SeekDependencies(member, ref dependencies);
            }
        }