如何重写HttpRequestMessage调用以支持<t> </t>

时间:2013-10-02 17:59:28

标签: asp.net-web-api json.net

我找到了一个有用的类,它使用类型T的JSON序列化/反序列化支持进行Web API调用。您可以查看整个类/文章here。我想我可以从这个课程中得到很多用处,并且想尝试一下。还有一个错误,我无法弄清楚如何处理。它在以下例程中:

protected HttpRequestMessage GetHttpRequestMessage<T>(T data)
{
    MediaTypeHeaderValue mediaType = new MediaTypeHeaderValue("application/json");
    JsonSerializerSettings jsonSerializerSettings = new JsonSerializerSettings();
    jsonSerializerSettings.Converters.Add(new IsoDateTimeConverter());

    JsonNetFormatter jsonFormatter = new JsonNetFormatter(jsonSerializerSettings);

    HttpRequestMessage requestMessage = new HttpRequestMessage<T>(data, mediaType, new MediaTypeFormatter[] { jsonFormatter });

    return requestMessage;
}

我得到的错误是:

Error   3   The non-generic type 'System.Net.Http.HttpRequestMessage' 
cannot be used with type arguments.

HttpRequestMessage<T>用红色波浪线加下划线。

如何以不会破坏此类通用实用性的方式重写此例程/代码行?

1 个答案:

答案 0 :(得分:3)

那篇文章已经过时了;它引用了Web API的BETA版本。已发布的版本as explained here中删除了通用HttpRequestMessage<T>类。相反,您应该使用PostAsJsonAsync<T>扩展方法。这里有更多up-to-date tutorial,可以满足您的需求。