c# - 指定编码 XmlSerializer

标签 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.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>

最佳答案

以下应该有效:

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-8UTF-16(它们更容易被识别)并摆脱它。

关于c# - 指定编码 XmlSerializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20997062/

相关文章:

c# - 单元测试 Windows.Web.Http HttpClient 与模拟 IHttpFilter 和 IHttpContent,MockedHttpFilter 抛出 System.InvalidCastException

.net - 未知软件异常 0xe0434352

c#-4.0 - 最简单的异步 TextWriter 到 TextReader 流/管道

c# - 为什么选项卡标题显示在 XAML TabControl 中选项卡的内容区域中?

c# - 为什么我的更新无法持续?

c# - 在ViewModel中公开属性的正确方法

java - 二进制 XML 文件行 #23 : Error inflating class com. example.caesar.library.ChipView

java - 阴影未显示在 CardView 中

xml - 如何将 HTML R 对象转换为字符?

c# - 如何在 c# 上将 asp.net 用户控件的当前类名转换为字符串?