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

すばらしい質問です。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 に答える