private static PolicyLevel LoadPolicyLevelFromStringHelper(string str, string path, PolicyLevelType type)
{
if (str == null)
{
throw new ArgumentNullException("str");
}
PolicyLevel level = new PolicyLevel(type, path);
SecurityElement topElement = new Parser(str).GetTopElement();
if (topElement == null)
{
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Policy_BadXml"), new object[] { "configuration" }));
}
SecurityElement element2 = topElement.SearchForChildByTag("mscorlib");
if (element2 == null)
{
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Policy_BadXml"), new object[] { "mscorlib" }));
}
SecurityElement element3 = element2.SearchForChildByTag("security");
if (element3 == null)
{
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Policy_BadXml"), new object[] { "security" }));
}
SecurityElement element4 = element3.SearchForChildByTag("policy");
if (element4 == null)
{
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Policy_BadXml"), new object[] { "policy" }));
}
SecurityElement e = element4.SearchForChildByTag("PolicyLevel");
if (e == null)
{
throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Policy_BadXml"), new object[] { "PolicyLevel" }));
}
level.FromXml(e);
return level;
}