/// <summary>Creates an XML encoding of the security object and its current state.</summary> /// <returns>An XML encoding of the security object, including any state information.</returns> /// <PermissionSet> /// <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="ControlEvidence" /> /// </PermissionSet> public SecurityElement ToXml() { Hashtable hashtable = new Hashtable(); if (this.full_trust_assemblies.Count > 0 && !hashtable.Contains("StrongNameMembershipCondition")) { hashtable.Add("StrongNameMembershipCondition", typeof(StrongNameMembershipCondition).FullName); } SecurityElement securityElement = new SecurityElement("NamedPermissionSets"); foreach (object obj in this.named_permission_sets) { NamedPermissionSet namedPermissionSet = (NamedPermissionSet)obj; SecurityElement securityElement2 = namedPermissionSet.ToXml(); object key = securityElement2.Attributes["class"]; if (!hashtable.Contains(key)) { hashtable.Add(key, namedPermissionSet.GetType().FullName); } securityElement.AddChild(securityElement2); } SecurityElement securityElement3 = new SecurityElement("FullTrustAssemblies"); foreach (object obj2 in this.full_trust_assemblies) { StrongNameMembershipCondition strongNameMembershipCondition = (StrongNameMembershipCondition)obj2; securityElement3.AddChild(strongNameMembershipCondition.ToXml(this)); } SecurityElement securityElement4 = new SecurityElement("SecurityClasses"); if (hashtable.Count > 0) { foreach (object obj3 in hashtable) { DictionaryEntry dictionaryEntry = (DictionaryEntry)obj3; SecurityElement securityElement5 = new SecurityElement("SecurityClass"); securityElement5.AddAttribute("Name", (string)dictionaryEntry.Key); securityElement5.AddAttribute("Description", (string)dictionaryEntry.Value); securityElement4.AddChild(securityElement5); } } SecurityElement securityElement6 = new SecurityElement(typeof(PolicyLevel).Name); securityElement6.AddAttribute("version", "1"); securityElement6.AddChild(securityElement4); securityElement6.AddChild(securityElement); if (this.root_code_group != null) { securityElement6.AddChild(this.root_code_group.ToXml(this)); } securityElement6.AddChild(securityElement3); return(securityElement6); }