C # - YAXLib: экспорт данных в файл XML - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть два примера классов, которые используются для де-сериализации XML-файла в тестах.

XmlExampleBasicUnit.cs :

[YAXSerializeAs("Unit")]
public class XmlExampleBasicUnit
{
    [YAXSerializeAs("StringVar")]
    public String StringVar { get; set; }
    [YAXSerializeAs("Int32Var")]
    public Int32 Int32Var { get; set; }
    [YAXSerializeAs("DoubleVar")]
    public Double DoubleVar { get; set; }
    [YAXSerializeAs("DateTimeVar")]
    public String DateTimeVar { get; set; }
    [YAXSerializeAs("CharVar")]
    public String CharVar { get; set; }
}

XmlExampleCollectionOfUnits.cs :

[YAXSerializeAs("CollectionOfUnits")]
public class XmlExampleCollectionOfUnits
{
    [YAXSerializeAs("Units")]
    public List<XmlExampleBasicUnit> Units { get; set; }

    public XmlExampleCollectionOfUnits(List<XmlExampleBasicUnit> units)
    {
        Units = units;
    }

    public XmlExampleCollectionOfUnits()
    {
    }
}

Я хочу экспортировать переменную XmlExampleCollectionOfUnits в файл XML, который будет правильно отформатирован.Это текущая функция, которая отвечает за это:

public void Export<T>(String fileName, T result) where T : class
{
    YAXSerializer serializer = new YAXSerializer(typeof(T));
    using (FileStream fs = File.Create(fileName))
    {
        Byte[] info = new UTF8Encoding(true).GetBytes(serializer.Serialize(result));
        fs.Write(info, 0, info.Length);
    }
}

Проблема заключается в том, что используется функция GetBytes(), которая добавляет некоторый байт, который не распознается функцией, отвечающей за импорт данных из файла XML.,Я пытался решить это с XmlTextWriter, но безуспешно.Я могу получить String содержимого, которое я хочу записать в файл, но XmlTextWriter не может его обработать.

1 Ответ

0 голосов
/ 29 ноября 2018

Функция Serialize из YAXSerializer имеет перегрузку для XmlWriter.

...