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));
}