C# 指定编码XmlSerializer

C# 指定编码XmlSerializer,c#,xml,c#-4.0,export-to-xml,C#,Xml,C# 4.0,Export To Xml,我已经正确定义了一个类,在将它序列化为XML之后,我没有得到任何编码 如何定义编码“ISO-8859-1” 下面是一个示例代码 var xml = new XmlSerializer(typeof(Transacao)); var file = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml"),FileMode.OpenOrCreate); xml.Ser

我已经正确定义了一个类,在将它序列化为XML之后,我没有得到任何编码

如何定义编码“ISO-8859-1”

下面是一个示例代码

var xml = new XmlSerializer(typeof(Transacao));
var file = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml"),FileMode.OpenOrCreate);            
xml.Serialize(file, transacao);            
file.Close();
下面是生成xml的开始

<?xml version="1.0"?>
<requisicao-transacao xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <dados-ec>
    <numero>1048664497</numero>

1048664497

使用所需编码创建StreamWriter:

System.Text.Encoding code = *WhateverYouWant*
StreamWriter sw = new StreamWriter(file, code);

以下方面应起作用:

var xml = new XmlSerializer(typeof(Transacao));

var fname = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "transacao.xml");
var appendMode = false;
var encoding = Encoding.GetEncoding("ISO-8859-1");

using(StreamWriter sw = new StreamWriter(fname, appendMode, encoding))
{
    xml.Serialize(sw, transacao);
}
如果您不介意我问一下,为什么您特别需要
ISO-8859-1
编码?您可能可以使用
UTF-8
UTF-16
(它们更容易识别)并侥幸逃脱。

可能是重复的:但我不确定8859-1编码