private object ReadChildren(SecurityElement securityElement, int tagIndex) {
Hashtable newTable = CreateHashtable();
if (securityElement.Children != null) {
for (int index = 0; index < securityElement.Children.Count; ++ index) {
SecurityElement currentElement = (SecurityElement)securityElement.Children[index];
if (currentElement.Tag == this.TagNames[tagIndex]) {
string contentName = currentElement.Attribute("name");
if (tagIndex < (this.TagNames.Length -1))
newTable[contentName] = ReadChildren(currentElement, tagIndex +1);
else {
string accessString = currentElement.Attribute("access");
int permissionAccess = 0;
if (accessString != null) {
permissionAccess = (int) Enum.Parse(PermissionAccessType, accessString);
}
newTable[contentName] = permissionAccess;
}
}
}
}
return newTable;
}