public override void FromXml(SecurityElement securityElement) {
if (securityElement == null) {
//
// null SecurityElement
//
throw new ArgumentNullException("securityElement");
}
if (!securityElement.Tag.Equals("IPermission")) {
//
// SecurityElement must be a permission element
//
throw new ArgumentException(SR.GetString(SR.net_not_ipermission), "securityElement");
}
string className = securityElement.Attribute("class");
if (className == null) {
//
// SecurityElement must be a permission element for this type
//
throw new ArgumentException(SR.GetString(SR.net_no_classname), "securityElement");
}
if (className.IndexOf(this.GetType().FullName) < 0) {
//
// SecurityElement must be a permission element for this type
//
throw new ArgumentException(SR.GetString(SR.net_no_typename), "securityElement");
}
//
// Start recovering the state from XML encoding
//
initialize();
String str = securityElement.Attribute("Unrestricted");
if (str != null) {
m_noRestriction = (0 == string.Compare( str, "true", StringComparison.OrdinalIgnoreCase ));
if(m_noRestriction)
return;
}
m_noRestriction = false;
m_connectList = new ArrayList();
m_acceptList = new ArrayList();
SecurityElement et = securityElement.SearchForChildByTag("ConnectAccess");
if (et != null) {
ParseAddXmlElement(et, m_connectList, "ConnectAccess, ");
}
et = securityElement.SearchForChildByTag("AcceptAccess");
if (et != null) {
ParseAddXmlElement(et, m_acceptList, "AcceptAccess, ");
}
}