Skip to content

C# classes for xml version 3. Makes it easy to consume and produce XML files from DotNet Applications.

Notifications You must be signed in to change notification settings

international-orienteering-federation/Dotnet-Client-IOF.XML.V3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

C# classes for xml version 3. Makes it easy to consume and produce XML files from DotNet Applications.

Available as a nuget package with name IOF.XML.V3

Sample XmlSerializerService classa and interface to be used with dependency injection is listed below. The implementation below is to read and write files to disk but can be modified to work with strings and memory streams as required.

public interface IXmlSerializerService {
  T Deserialize<T>(string path)where T : class;
  void Serialize<T>(string path, T instance);
}
public class XmlSerializerService : IXmlSerializerService {
  public XmlSerializerService() {
    Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
  }

  public void Serialize<T>(string path, T instance) {
    using(FileStream fileStream = new FileStream(path, FileMode.Create)) {
      new XmlSerializer(typeof(T)).Serialize(fileStream, instance);
    }
  }

  public T Deserialize<T>(string path)where T : class {
    if (!File.Exists(path)) {
      return null;
    }

    using(FileStream fileStream = new FileStream(path, FileMode.Open)) {
      return new XmlSerializer(typeof(T)).Deserialize(fileStream)as T;
    }
  }
}

Add services.AddSingleton<IXmlSerializerService, XmlSerializerService>(); to ConfigureServices in the Startup.cs file, if you are using DotNetCore with dependency injection.

As an example, ResultList files can now be able to be loaded with:

var results = _XmlSerializerService.Deserialize<ResultList>(xmlFilePath);

To save a ResultList:

_XmlSerializerService.Serialize<ResultList>(xmlFilePath, results);

Please note that the default encoding for the xml files producted from SportSoftware OE and OS is windows-1252. You are required to reference System.Text.Encoding.CodePages and to call Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) before reading files for this to work.

About

C# classes for xml version 3. Makes it easy to consume and produce XML files from DotNet Applications.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages