0
我有一个非常愚蠢的问题与自定义格式化程序相关。Web API ReadFromStreamAsync未执行
public class RequestHeaderJsonFormatter : MediaTypeFormatter
{
public RequestHeaderJsonFormatter()
{
SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/xml"));
SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/xml"));
SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/plain"));
}
public override System.Threading.Tasks.Task<object> ReadFromStreamAsync(Type type, Stream readStream, HttpContent content, IFormatterLogger formatterLogger)
{
return base.ReadFromStreamAsync(type, readStream, content, formatterLogger);
}
public override bool CanReadType(Type type)
{
return true;
}
public override bool CanWriteType(Type type)
{
return true;
}
}
我寄存器格式化Global.asax中,因为它遵循:
保护无效的Application_Start() { GlobalConfiguration.Configuration.Formatters.Insert(0,新RequestHeaderJsonFormatter());
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
}
我的问题是执行控制器动作时ReadFromStreamAsync不会被调用。
public class HomeController : ApiController
{
public HttpResponseMessage GetString(string param)
{
var response = Request.CreateResponse(HttpStatusCode.OK, "ererrer");
return response;
}
}
我在做什么错......我无法弄清楚。任何帮助将非常感激。
嘿,我为我的迟到回复道歉。它根本不起作用。我用自定义对象替换了字符串参数,并且具有相同的行为。 – 2013-03-05 08:54:39
你能分享你的原始请求(可能来自Fiddler)的样子吗? – 2013-03-05 08:57:42