我的项目框架:.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。

10-06 05:09