У меня есть два примера классов, которые используются для де-сериализации 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
не может его обработать.