大家新年快乐, 在我使用StringWriter序列化对象并返回输出响应并将其发送到客户端之后。但是当客户端收到响应时: 它具有这样的标签:
<string xmlns="http://schemas.microsoft.com/...">
<?xml version="1.0" encoding="utf-16">
<trx>.....</trx>
</string>
所以,我的问题是: 1.如何返回正确的xml格式,如下所示:
<?xml version="1.0" encoding="utf-16">
<trx>.....</trx>
2。如果我使用MemoryStream以byte []的形式发送响应,客户端是否可以使用encoding =“ utf-8”接收正确的消息?
非常感谢! 这是我用于序列化的代码路径:
StringWriter textWriter = new StringWriter();
XmlWriter tw = null;
XmlWriterSettings settings new XmlWriterSettings{
Encoding =UnicodeEncoding.UTF8,
Indent =false,
OmitXmlDeclaration =false
};
var serialize1 =new XmlSerializer(typeof(OTrx));
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("","");
tw=XmlWriter.Create(textWriter,settings);
serializer1.Serialize(tw,oTrx,ns);
var output=textWriter.ToString();
return output
答案 0 :(得分:0)
不确定是否正在使用.net core。 如果是,则可以使用此中间件nuget包-Microsoft.AspNetCore.Mvc.Formatters.Xml
引用此URL答案 1 :(得分:0)
如果您共享了一些示例代码,但是您考虑过this呢?
如果返回字符串,您将得到一个字符串。