Как вернуть XML-ответ в веб-API - PullRequest
0 голосов
/ 04 января 2019

С новым годом Everyobdy, после того, как я сериализовал объект, используя 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.Если я отправлю ответ в виде byte [] с помощью MemoryStream, получит ли клиент правильный кодировку с кодировкой = "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 голосов
/ 04 января 2019

Было бы полезно, если бы вы поделились некоторым примером кода, но рассматривали ли вы это ?

Если вы вернете строку, вы получите строку.

0 голосов
/ 04 января 2019

Не уверен, что вы используете ядро ​​.net. Если да, то вы можете использовать этот промежуточный пакет Nuget - Microsoft.AspNetCore.Mvc.Formatters.Xml

Пожалуйста, обратитесь к этому URL для c примеров и подробного объяснения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...