/// <summary> /// Imports a list of servers from a file. /// </summary> /// <param name="filePath">The file path.</param> /// <param name="register">if set to <c>true</c> the server is registered, otherwise unregistered.</param> public static void Import(string filePath, bool register) { Export.ListOfRegisteredServers _list = new Export.ListOfRegisteredServers(); // read from file. XmlTextReader _reader = new XmlTextReader(filePath); XmlSerializer _serializer = new XmlSerializer(typeof(Export.ListOfRegisteredServers), CommonDefinitions.ConfigToolSchemaUri); Export.ListOfRegisteredServers _servers = (Export.ListOfRegisteredServers)_serializer.Deserialize(_reader); _reader.Close(); if (CommonDefinitions.IsEmpty(_servers.Server)) { return; } // registers the servers. for (int ii = 0; ii < _servers.Server.Length; ii++) { RegisteredDotNetOpcServer server = Import(_servers.Server[ii]); if (register) { server.Register(); } else { server.Unregister(); } } }
/// <summary> /// Exports a list of servers to the file. /// </summary> /// <param name="filePath">The filename to write to. If the file exists, it truncates it and overwrites it with the new content..</param> public static void Export(string filePath) { // enumerate servers. List <RegisteredDotNetOpcServer> _servers = EnumRegisteredServers(false); // populate export structures. Export.ListOfRegisteredServers _serverList = new Export.ListOfRegisteredServers(); _serverList.Server = new Export.RegisteredServer[_servers.Count]; for (int ii = 0; ii < _servers.Count; ii++) { _serverList.Server[ii] = Export(_servers[ii]); } // write to file. XmlTextWriter writer = new XmlTextWriter(filePath, System.Text.Encoding.UTF8); writer.Formatting = Formatting.Indented; XmlSerializer serializer = new XmlSerializer(typeof(Export.ListOfRegisteredServers), CommonDefinitions.ConfigToolSchemaUri); serializer.Serialize(writer, _serverList); writer.Close(); }