0

github は、コミットがリポジトリにプッシュされたときに警告を発し、Web サービスを呼び出すことができます ( Post-Receive Hooks )。github は、コミット情報を JSON として送信しますが、フォーム エンコードされたパラメーター内で送信します。つまり、コンテンツ タイプはapplication/x-www-form-urlencodedで、http リクエストは

POST /my_uri HTTP/1.1
Content-Type: application/x-www-form-urlencoded

payload=%7B%22ref%22%3A%22refs%2Fheads...

ASP.NET MVC または WebAPI で新しいコミットを処理する Web サービスを作成したいと考えています。json を逆シリアル化するクラスをいくつか定義しましたが、フレームワークでオブジェクトを直接初期化することができません。私が今持っているのは

public string my_uri(string payload)
{
    var s = new JavaScriptSerializer();
    var p = s.Deserialize(payload, typeof(Payload)) as Payload;
    ...
}

しかし、私はしたいです

public string my_uri(Payload payload)
{
    ...
}

ValueProviders について読んだことがありますが、それらを連鎖させる方法が見つかりませんでした。FormValueProviderFactory と JsonValueProviderFactory を構成する必要があります。どうすれば ASP にバインディングを実行させることができますか?

4

1 に答える 1