1

我在 asp.net web api 中。在 API 方法中,我正在调用一个返回 XML 响应的外部 Web 服务。我不想反序列化它。我宁愿将它按原样发送给客户。最初,我将响应存储在XDocument对象中,但是当我的客户端指定application/xml为接受标头时,我看到以下异常

Type 'System.Xml.Linq.XDeclaration' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types.

我该如何解决这个问题

4

2 回答 2

3

伟大的 Q,我简单地在 api 成员中写下你的问题使用:

 [HttpGet]
 [ActionName("Books")]
 public HttpResponseMessage MyBook()
    {
        var request = new HttpResponseMessage(HttpStatusCode.OK);
        var doc = XDocument.Parse(@"<books><book><author>MS</author><name>ASP.NET</name></book></books>");
        request.Content = new StringContent(doc.ToString(), Encoding.UTF8, "application/xml");

        return request;
    }

试试这个会员来源。

于 2012-09-05T07:02:41.477 回答
0

您应该能够使用一些控制器特定的设置。有关示例,请参见此处

于 2012-09-05T22:09:32.860 回答