如何在Web API中返回XML响应

时间:2019-01-04 11:04:40

标签: c# .net xml serialization

大家新年快乐, 在我使用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

2 个答案:

答案 0 :(得分:0)

不确定是否正在使用.net core。 如果是,则可以使用此中间件nuget包-Microsoft.AspNetCore.Mvc.Formatters.Xml

请为c ode examples and detailed explanation.

引用此URL

答案 1 :(得分:0)

如果您共享了一些示例代码,但是您考虑过this呢?

  

如果返回字符串,您将得到一个字符串。