SetRawXml() публичный Метод

public SetRawXml ( string xml ) : void
xml string
Результат void
Пример #1
0
        internal void DeserializeConfigSource(string basePath)
        {
            var configSource = SectionInformation.ConfigSource;

            if (string.IsNullOrEmpty(configSource))
            {
                return;
            }

            if (Path.IsPathRooted(configSource))
            {
                throw new ConfigurationErrorsException("The configSource attribute must be a relative physical path.");
            }

            if (HasLocalModifications())
            {
                throw new ConfigurationErrorsException(
                          "A section using 'configSource' may contain no other attributes or elements.");
            }

            string path = Path.Combine(basePath, configSource);

            if (!File.Exists(path))
            {
                RawXml = null;
                SectionInformation.SetRawXml(null);
                throw new ConfigurationErrorsException(string.Format("Unable to open configSource file '{0}'.", path));
            }

            RawXml = File.ReadAllText(path);
            SectionInformation.SetRawXml(RawXml);
            DeserializeElement(XmlReader.Create(new StringReader(RawXml)), false);
        }
Пример #2
0
        private void DoDeserializeSection(XmlReader reader)
        {
            reader.MoveToContent();

            string configSource = null;

            while (reader.MoveToNextAttribute())
            {
                var localName = reader.LocalName;
                if (localName == "configSource")
                {
                    configSource = reader.Value;
                }
            }

            if (configSource != null)
            {
                SectionInformation.ConfigSource = configSource;
            }

            SectionInformation.SetRawXml(RawXml);
            if (SectionHandler == null)
            {
                DeserializeElement(reader, false);
            }
        }
        void DoDeserializeSection(XmlReader reader)
        {
            reader.MoveToContent();

            string protection_provider = null;
            string config_source       = null;
            string localName;

            while (reader.MoveToNextAttribute())
            {
                localName = reader.LocalName;
                if (localName == "configProtectionProvider")
                {
                    protection_provider = reader.Value;
                }
                else if (localName == "configSource")
                {
                    config_source = reader.Value;
                }
            }

            /* XXX this stuff shouldn't be here */
            {
                if (protection_provider != null)
                {
                    ProtectedConfigurationProvider prov = ProtectedConfiguration.GetProvider(protection_provider, true);
                    XmlDocument doc = new ConfigurationXmlDocument();

                    reader.MoveToElement();

                    doc.Load(new StringReader(reader.ReadInnerXml()));

                    XmlNode n = prov.Decrypt(doc);

                    reader = new XmlNodeReader(n);

                    SectionInformation.ProtectSection(protection_provider);

                    reader.MoveToContent();
                }
            }

            if (config_source != null)
            {
                SectionInformation.ConfigSource = config_source;
            }

            SectionInformation.SetRawXml(RawXml);
            if (SectionHandler == null)
            {
                DeserializeElement(reader, false);
            }
        }
Пример #4
0
        protected internal virtual object GetRuntimeObject()
        {
            if (SectionHandler != null)
            {
                ConfigurationSection parentSection = sectionInformation != null?sectionInformation.GetParentSection() : null;

                object parent = parentSection != null?parentSection.GetRuntimeObject() : null;

                if (RawXml == null)
                {
                    return(parent);
                }

                try
                {
                    // This code requires some re-thinking...
                    XmlReader reader = new ConfigXmlTextReader(
                        new StringReader(RawXml),
                        Configuration.FilePath);

                    DoDeserializeSection(reader);

                    if (!String.IsNullOrEmpty(SectionInformation.ConfigSource))
                    {
                        string fileDir = SectionInformation.ConfigFilePath;
                        if (!String.IsNullOrEmpty(fileDir))
                        {
                            fileDir = Path.GetDirectoryName(fileDir);
                        }
                        else
                        {
                            fileDir = String.Empty;
                        }

                        string path = Path.Combine(fileDir, SectionInformation.ConfigSource);
                        if (File.Exists(path))
                        {
                            RawXml = File.ReadAllText(path);
                            SectionInformation.SetRawXml(RawXml);
                        }
                    }
                }
                catch
                {
                    // ignore, it can fail - we deserialize only in order to get
                    // the configSource attribute
                }
                XmlDocument doc = new ConfigurationXmlDocument();
                doc.LoadXml(RawXml);
                return(SectionHandler.Create(parent, ConfigContext, doc.DocumentElement));
            }
            return(this);
        }
Пример #5
0
        internal void DeserializeConfigSource(string basePath)
        {
            string config_source = SectionInformation.ConfigSource;

            if (String.IsNullOrEmpty (config_source))
                return;

            if (Path.IsPathRooted (config_source))
                throw new ConfigurationException ("The configSource attribute must be a relative physical path.");

            if (HasLocalModifications ())
                throw new ConfigurationException ("A section using 'configSource' may contain no other attributes or elements.");

            string path = Path.Combine (basePath, config_source);
            if (!File.Exists (path)) {
                RawXml = null;
                SectionInformation.SetRawXml (null);
                return;
            }

            RawXml = File.ReadAllText (path);
            SectionInformation.SetRawXml (RawXml);
            DeserializeElement (new ConfigXmlTextReader (new StringReader (RawXml), path), false);
        }