System.Security.Permissions.ResourcePermissionBase.GetChildrenAccess C# (CSharp) Method

GetChildrenAccess() private method

private GetChildrenAccess ( object currentContent, int tagIndex ) : System.Security.Permissions.ResourcePermissionBaseEntry[]
currentContent object
tagIndex int
return System.Security.Permissions.ResourcePermissionBaseEntry[]
        private ResourcePermissionBaseEntry[] GetChildrenAccess(object currentContent, int tagIndex) {
            IDictionaryEnumerator contentEnumerator = ((Hashtable)currentContent).GetEnumerator();
            ArrayList list = new ArrayList();
            while(contentEnumerator.MoveNext()) {
                if (tagIndex < (this.TagNames.Length -1)) {
                    ResourcePermissionBaseEntry[] currentEntries = GetChildrenAccess(contentEnumerator.Value, tagIndex + 1);
                    for (int index = 0; index < currentEntries.Length; ++index)
                        currentEntries[index].PermissionAccessPath[tagIndex] = (string)contentEnumerator.Key;

                     list.AddRange(currentEntries);
                }
                else {
                    ResourcePermissionBaseEntry entry = new ResourcePermissionBaseEntry((int)contentEnumerator.Value, new string[this.TagNames.Length]);
                    entry.PermissionAccessPath[tagIndex] = (string)contentEnumerator.Key;

                    list.Add(entry);
                }
            }

            return (ResourcePermissionBaseEntry[])list.ToArray(typeof(ResourcePermissionBaseEntry));
        }