我的项目框架:.net 4.5
项目类型:MVC4
我添加了框架4.0的System.Json。
我在Model-> JsonNetFormatter.cs中输入了以下代码,它继承了MediaTypeFormatter类:
protected override System.Threading.Tasks.Task<object> OnReadFromStreamAsync(Type type, System.IO.Stream stream, System.Net.Http.Headers.HttpContentHeaders contentHeaders, FormatterContext formatterContext)
{
var task = Task<object>.Factory.StartNew(() =>
{
var settings = new JsonSerializerSettings()
{
NullValueHandling = NullValueHandling.Ignore,
};
var sr = new StreamReader(stream);
var jreader = new JsonTextReader(sr);
var ser = new JsonSerializer();
ser.Converters.Add(new IsoDateTimeConverter());
object val = ser.Deserialize(jreader, type);
return val;
});
return task;
}
但是当我要构建解决方案或项目时,会引发以下错误:
找不到类型或名称空间名称“ FormatterContext”(您是否缺少using指令或程序集引用?)
我是否缺少任何dll或是否由于其他原因抛出了错误?
最佳答案
在FormatterContext
RC版本中删除了MVC4
请参考发行说明:Release notes
来自:MSDN Forums
格式化程序的改进:MediaTypeFormatter上的方法现在是
公开以对自定义格式器进行单元测试。单个格式化程序
现在可以支持多种文本编码。使用
BufferedMediaTypeFormatter实现简单的同步格式化
支持。 FormatterContext已被删除。获得访问
来自服务器工具上的格式化程序的请求
GetPerRequestFormatterInstance。