GetSectionXml() private method

private GetSectionXml ( System.Configuration.SectionInfo config ) : string
config System.Configuration.SectionInfo
return string
コード例 #1
0
        public override void WriteData(Configuration config, XmlWriter writer, ConfigurationSaveMode mode)
        {
            string xml;

            ConfigurationSection section = config.GetSectionInstance(this, false);

            if (section != null)
            {
                ConfigurationSection parentSection = config.Parent != null?config.Parent.GetSectionInstance(this, false) : null;

                xml = section.SerializeSection(parentSection, Name, mode);

                string externalDataXml = section.ExternalDataXml;
                string filePath        = config.FilePath;

                if (!String.IsNullOrEmpty(filePath) && !String.IsNullOrEmpty(externalDataXml))
                {
                    string path = Path.Combine(Path.GetDirectoryName(filePath), section.SectionInformation.ConfigSource);
                    using (StreamWriter sw = new StreamWriter(path))
                    {
                        sw.Write(externalDataXml);
                    }
                }

                if (section.SectionInformation.IsProtected)
                {
                    StringBuilder sb = new StringBuilder();
                    sb.AppendFormat("<{0} configProtectionProvider=\"{1}\">\n",
                                    Name,
                                    section.SectionInformation.ProtectionProvider.Name);
                    sb.Append(config.ConfigHost.EncryptSection(xml,
                                                               section.SectionInformation.ProtectionProvider,
                                                               ProtectedConfiguration.Section));
                    sb.AppendFormat("</{0}>", Name);
                    xml = sb.ToString();
                }
            }
            else
            {
                xml = config.GetSectionXml(this);
            }

            if (xml != null)
            {
                writer.WriteRaw(xml);

                /*				XmlTextReader tr = new XmlTextReader (new StringReader (xml));
                 *                          writer.WriteNode (tr, true);
                 *                          tr.Close ();*/
            }
        }
コード例 #2
0
 public override void ReadData(Configuration config, XmlReader reader, bool overrideAllowed)
 {
     if (!config.HasFile && !allowLocation)
     {
         throw new ConfigurationErrorsException("The configuration section <" + Name + "> cannot be defined inside a <location> element.", reader);
     }
     if (!config.ConfigHost.IsDefinitionAllowed(config.ConfigPath, allowDefinition, allowExeDefinition))
     {
         object ctx = allowExeDefinition != ConfigurationAllowExeDefinition.MachineToApplication ? (object)allowExeDefinition : (object)allowDefinition;
         throw new ConfigurationErrorsException("The section <" + Name + "> can't be defined in this configuration file (the allowed definition context is '" + ctx + "').", reader);
     }
     if (config.GetSectionXml(this) != null)
     {
         ThrowException("The section <" + Name + "> is defined more than once in the same configuration file.", reader);
     }
     config.SetSectionXml(this, reader.ReadOuterXml());
 }
コード例 #3
0
ファイル: SectionInfo.cs プロジェクト: zr8091/AntData.ORM
 public override bool HasDataContent(Configuration config)
 {
     return(config.GetSectionInstance(this, false) != null || config.GetSectionXml(this) != null);
 }
コード例 #4
0
ファイル: SectionInfo.cs プロジェクト: Xipas/Symplified.Auth
		public override bool HasDataContent (Configuration config)
		{
			return config.GetSectionInstance (this, false) != null || config.GetSectionXml (this) != null;
		}
コード例 #5
0
ファイル: SectionInfo.cs プロジェクト: Xipas/Symplified.Auth
		public override void WriteData (Configuration config, XmlWriter writer, ConfigurationSaveMode mode)
		{
			string xml;
			
			ConfigurationSection section = config.GetSectionInstance (this, false);
			if (section != null) {
				ConfigurationSection parentSection = config.Parent != null ? config.Parent.GetSectionInstance (this, false) : null;
				xml = section.SerializeSection (parentSection, Name, mode);

				string externalDataXml = section.ExternalDataXml;
				string filePath = config.FilePath;
				
				if (!String.IsNullOrEmpty (filePath) && !String.IsNullOrEmpty (externalDataXml)) {
					string path = Path.Combine (Path.GetDirectoryName (filePath), section.SectionInformation.ConfigSource);
					using (StreamWriter sw = new StreamWriter (path)) {
						sw.Write (externalDataXml);
					}
				}
				
				if (section.SectionInformation.IsProtected) {
					StringBuilder sb = new StringBuilder ();
					sb.AppendFormat ("<{0} configProtectionProvider=\"{1}\">\n",
							 Name,
							 section.SectionInformation.ProtectionProvider.Name);
					sb.Append (config.ConfigHost.EncryptSection (xml,
										     section.SectionInformation.ProtectionProvider,
										     ProtectedConfiguration.Section));
					sb.AppendFormat ("</{0}>", Name);
					xml = sb.ToString ();
				}
			}
			else {
				xml = config.GetSectionXml (this);
			}
			
			if (!string.IsNullOrEmpty (xml)) {
				writer.WriteRaw (xml);
/*				XmlTextReader tr = new XmlTextReader (new StringReader (xml));
				writer.WriteNode (tr, true);
				tr.Close ();*/
			}
		}
コード例 #6
0
ファイル: SectionInfo.cs プロジェクト: Xipas/Symplified.Auth
		public override void ReadData (Configuration config, XmlReader reader, bool overrideAllowed)
		{
			if (!config.HasFile && !allowLocation)
				throw new ConfigurationErrorsException ("The configuration section <" + Name + "> cannot be defined inside a <location> element.", reader); 
			if (!config.ConfigHost.IsDefinitionAllowed (config.ConfigPath, allowDefinition, allowExeDefinition)) {
				object ctx = allowExeDefinition != ConfigurationAllowExeDefinition.MachineToApplication ? (object) allowExeDefinition : (object) allowDefinition;
				throw new ConfigurationErrorsException ("The section <" + Name + "> can't be defined in this configuration file (the allowed definition context is '" + ctx + "').", reader);
			}
			if (config.GetSectionXml (this) != null)
				ThrowException ("The section <" + Name + "> is defined more than once in the same configuration file.", reader);
			config.SetSectionXml (this, reader.ReadOuterXml ());
		}