0

我有两个示例类,用于在测试中反序列化 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无法处理它。

4

1 回答 1

0

的函数SerializeYAXSerializer有重载XmlWriter

于 2018-11-29T13:13:40.063 回答