Exemple #1
0
        /// <summary>创建 <see cref="T:System.Security.Policy.ApplicationTrust" /> 对象及其当前状态的 XML 编码。</summary>
        /// <returns>安全对象的 XML 编码,包括任何状态信息。</returns>
        /// <PermissionSet>
        ///   <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Read="*AllFiles*" PathDiscovery="*AllFiles*" />
        ///   <IPermission class="System.Security.Permissions.ReflectionPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="MemberAccess" />
        ///   <IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode" />
        /// </PermissionSet>
        public SecurityElement ToXml()
        {
            SecurityElement securityElement = new SecurityElement("ApplicationTrust");

            securityElement.AddAttribute("version", "1");
            if (this.m_appId != null)
            {
                securityElement.AddAttribute("FullName", SecurityElement.Escape(this.m_appId.FullName));
            }
            if (this.m_appTrustedToRun)
            {
                securityElement.AddAttribute("TrustedToRun", "true");
            }
            if (this.m_persist)
            {
                securityElement.AddAttribute("Persist", "true");
            }
            if (this.m_psDefaultGrant != null)
            {
                SecurityElement child = new SecurityElement("DefaultGrant");
                child.AddChild(this.m_psDefaultGrant.ToXml());
                securityElement.AddChild(child);
            }
            if (this.m_fullTrustAssemblies.Count > 0)
            {
                SecurityElement child = new SecurityElement("FullTrustAssemblies");
                foreach (StrongName fullTrustAssembly in (IEnumerable <StrongName>) this.m_fullTrustAssemblies)
                {
                    child.AddChild(fullTrustAssembly.ToXml());
                }
                securityElement.AddChild(child);
            }
            if (this.ExtraInfo != null)
            {
                securityElement.AddChild(ApplicationTrust.ObjectToXml("ExtraInfo", this.ExtraInfo));
            }
            return(securityElement);
        }