1

xmlとjsonの両方を受け入れることができるWCFRESTfulサービスで1つのpostメソッドを作成する方法を探しています。リクエストヘッダーに基づいてjson/xmlを自動的に返すGetメソッドでそれが可能であることがわかります。

私が考えることができる1つの解決策は次のとおりです。

  1. 投稿データを「ストリーム」として取得し、文字列に読み込みます。
  2. リクエストヘッダーを確認し、jsonまたはxmlに逆シリアル化します。
  3. OutgoingResponse形式を適切に設定し、応答を返します。

私は#1を行うことができますが、#2と#3で立ち往生しています。

4

1 に答える 1

1

マイクロソフトはすでにこれを行っています。車輪の再発明はしないでください。

public class DataController : ApiController
{
    public void Post(DataModel model)
    {
        // Whether the body contains XML, JSON, or Url-form-encoded it will be deserialized
        // into the model object which you can then interact with in a strongly-typed manner
    }
}

public class DataModel
{
    public string PropertyA { get; set; }
    public string PropertyB { get; set; }
}

新しいWebAPIを含むASP.NETMVC4を無料でダウンロードできます。http://www.asp.net/mvc/mvc4。これは基本的にWCFWebAPIの最終製品であり、サポートされなくなりました。元のWebAPIで既に記述されているコードが多すぎて、切り替えを行うのが現実的でない場合を除いて、これにより、長期的には多くの時間を節約できます。そうしないと、修正されないバグがあるベータ版製品で立ち往生することになります。

于 2012-08-26T07:29:20.743 に答える