public void FromXml(SecurityElement elem)
{
if (elem == null)
throw new ArgumentNullException(nameof(elem));
if (elem.Tag == null || !elem.Tag.Equals("Permission") && !elem.Tag.Equals("IPermission"))
throw new ArgumentException(SR.Argument_NotAPermissionElement);
string version = elem.Attribute("version");
if (version == null || (version != null && !version.Equals("1")))
throw new ArgumentException(SR.Argument_InvalidXMLBadVersion);
if (elem.Children != null && elem.Children.Count != 0)
{
int numChildren = elem.Children.Count;
int count = 0;
_idArray = new IDRole[numChildren];
foreach (object curr in elem.Children)
{
_idArray[count++] = new IDRole((SecurityElement)curr);
}
}
else
_idArray = new IDRole[0];
}