1

这应该是一个简单的。

我将 C# 对象的 List<> 序列化为 XML 文档。一切都很顺利,但是我的 XML 文档具有 ASCII 编码(X0020例如,空格表示为)并且客户端在抱怨,所以我想将编码更改为 UTF8,如下所示:

private void SerializeToXML(List<ResponseData> finalXML)
{
    XmlSerializer serializer = new XmlSerializer(typeof(List<ResponseData>));
    TextWriter textWriter = new StreamWriter(txtFileLocation.Text, Encoding.UTF8);
    serializer.Serialize(textWriter, finalXML);
    textWriter.Close();
}

Intellisense 告诉我这应该可以工作......

智能感知

...但是当我尝试时抱怨...

错误

我究竟做错了什么?

谢谢

4

2 回答 2

4

StreamWriter 构造函数没有 (string, Encoding) 方法签名。

构造函数有一个 (Stream, Encoding) 签名。

于 2012-06-07T19:09:04.807 回答
1

这是一个像魅力一样工作的片段:

using (Stream stream = File.Open(SerializeXmlFileName, FileMode.Create))
{
    using (TextWriter writer = new StreamWriter(stream, Encoding.UTF8))
    {
         XmlSerializer xmlFormatter = new XmlSerializer(this.Member.GetType());
         xmlFormatter.Serialize(writer, this.Member);
         writer.Close();
    }

    stream.Close();
}
于 2012-06-07T19:26:15.530 回答