'System.Net.Http.Formatting.MediaTypeFormatterCollection'不包含'OfType'的定义

时间:2015-07-27 19:53:21

标签: asp.net json owin

我正在从Java迁移到ASP.NET,并且我正在尝试使用OWIN OAuth令牌安全性来实现WebAPI。

我遇到了这个错误:

  

错误1'System.Net.Http.Formatting.MediaTypeFormatterCollection'有   不包含'OfType'的定义,也没有'OfType'的扩展方法   接受第一个类型的参数   'System.Net.Http.Formatting.MediaTypeFormatterCollection'可以   发现(您是否缺少using指令或程序集引用?)

这是我的Startup类,我收到错误。

using WebApi.Controller;
using Newtonsoft.Json.Serialization;
using Owin;
using System.Net.Http.Formatting;
using System.Web.Http;

namespace WebApi
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            HttpConfiguration httpConfig = new HttpConfiguration();
            ConfigureOAuthTokenGeneration(app);
            ConfigureWebApi(httpConfig);
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseWebApi(httpConfig);
        }

        private void ConfigureOAuthTokenGeneration(IAppBuilder app)
        {
            app.CreatePerOwinContext(DbContext.Create);
            app.CreatePerOwinContext<UsuarioManager>(UsuarioManager.Create);
        }

        private void ConfigureWebApi(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
            //This line is with the error in the topic
            var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().First();
            jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        }
    }
}

1 个答案:

答案 0 :(得分:3)

您可能错过了对

的引用
using System.Linq;

至少对我而言,这是我和你的创业公司之间的唯一区别,我的编译和运行正确。令人讨厌的是,你不能自动解决这个错误,所以很难分辨出什么是错过的。我通常不打扰运行“删除未使用的使用”,因为当我后来发现我需要在类中使用一些新代码时,通常会发生这种错误。

如果不是这样,那么请仔细检查所有nuget包和.Net版本。