0

私は HttpClient を使用して GetAsync 呼び出しを行っています。次に、 を呼び出して、呼び出しが成功したことを確認していますresponse.ErrorSuccessStatusCode()

私はそれから電話しますresponse.Content.ReadAsAsync<WikiResponse>()。ReadAsAsync が呼び出されるとエラーが発生します。これは、サード パーティの REST サービスが返され、"WikiResponse" ではなく "Response" という XML 応答が返されるためです。この WikiResponse は、さらに別のサード パーティによって作成されました。Response という名前のオブジェクトを作成することはできません。これは、他の DTO と同じ "レベル" にあるがクラス構造が異なる、この名前のクラスが既に存在するためです。

WikiResponse を Response に「適合」させる方法はありますか? XML とクラスの構造は、クラス名を除いて同一です。

早速のお返事ありがとうございます!

アップデート:

クラスで使用しようとし[XmlRoot(ElementName = "Response")]ましたが、うまくいきませんでした。

これは私が得ているエラーです:

[System.Runtime.Serialization.SerializationException] = {"Error in line 1 position 103.  Expecting element 'WikiResponse' from namespace 'http://schemas.datacontract.org/2004/07/Project.WikiResponses.DTO'.. Encountered 'Element'  with name 'Response', namespace 'http://www.someurl.com/url'. "}
4

1 に答える 1

0

ReadAsAsync のオーバーロードの 1 つを試すことができます。

public static Task<T> ReadAsAsync<T>(
    this HttpContent content,
    IEnumerable<MediaTypeFormatter> formatters
)

独自の MediaTypeFormatter を作成します。

http://msdn.microsoft.com/en-us/library/hh943959(v=vs.108).aspx

于 2012-11-18T19:54:30.877 に答える