5
をMediaTypeFormatter.ReadFromStreamAsyncアクションパラメータを取得し、アプリケーションをフォーマットする必要がありますさまざまな種類のリクエストボディ。ここで私は「名前」パラメータ(または、それによって、URLの一部)に応じて、カスタム<code>MediaTypeFormatter</code></p> <p>と自己ホストWEBAPIアプリケーションを持っている要求されたURLまたは私は
アクションが
// http://localhost/api/fire/test/
// Route: "api/fire/{name}",
public HttpResponseMessage Post([FromUri] string name, object data)
{
// Snip
}
です。ここここMediaTypeFormatter.ReadFromStreamAsync
public override Task<object> ReadFromStreamAsync(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger)
{
var name = "test"; // TODO this should come from the current request
var formatter = _httpSelfHostConfiguration.Formatters.JsonFormatter;
if (name.Equals("test", StringComparison.InvariantCultureIgnoreCase))
{
return formatter.ReadFromStreamAsync(typeof(SomeType), readStream, content, formatterLogger);
}
else
{
return formatter.ReadFromStreamAsync(typeof(OtherType), readStream, content, formatterLogger);
}
}
ありがとうございました。 –