예제 #1
0
        /// <summary>
        ///  Loads the configuration from the application configuration file.
        /// </summary>
        public static ServerTestConfiguration Load(XmlElementCollection extensions)
        {
            if (extensions == null || extensions.Count == 0)
            {
                return(new ServerTestConfiguration());
            }

            foreach (XmlElement element in extensions)
            {
                if (element.NamespaceURI != "http://opcfoundation.org/UA/SDK/ServerTest/Configuration.xsd")
                {
                    continue;
                }

                XmlNodeReader reader = new XmlNodeReader(element);

                try {
                    DataContractSerializer  serializer    = new DataContractSerializer(typeof(ServerTestConfiguration));
                    ServerTestConfiguration configuration = serializer.ReadObject(reader) as ServerTestConfiguration;

                    if (configuration.Iterations <= 0)
                    {
                        configuration.Iterations = 1;
                    }

                    return(configuration);
                } finally {
                    reader.Close();
                }
            }

            return(new ServerTestConfiguration());
        }
예제 #2
0
        /// <summary>
        /// Updates the config extension with the new configuration information.
        /// </summary>
        private static void UpdateGDSConfigurationDocument(XmlElementCollection extensions, GlobalDiscoveryServerConfiguration gdsConfiguration)
        {
            XmlDocument   gdsDoc        = new XmlDocument();
            var           qualifiedName = EncodeableFactory.GetXmlName(typeof(GlobalDiscoveryServerConfiguration));
            XmlSerializer gdsSerializer = new XmlSerializer(typeof(GlobalDiscoveryServerConfiguration), qualifiedName.Namespace);

            using (XmlWriter writer = gdsDoc.CreateNavigator().AppendChild())
            {
                gdsSerializer.Serialize(writer, gdsConfiguration);
            }

            foreach (var extension in extensions)
            {
                if (extension.Name == qualifiedName.Name)
                {
                    extension.InnerXml = gdsDoc.DocumentElement.InnerXml;
                }
            }
        }