2014-10-08 6 views
10
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.Http; 
using InCubatize.Helpers; 

namespace InCubatize 
{ 
    public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      //1 
      ////Create and instance of TokenInspector setting the default inner handler 
      //TokenInspector tokenInspector = new TokenInspector() { InnerHandler = new HttpControllerDispatcher(config) }; 

      ////Just exclude the users controllers from need to provide valid token, so they could authenticate 
      //config.Routes.MapHttpRoute(
      // name: "Authentication", 
      // routeTemplate: "api/users/{id}", 
      // defaults: new { controller = "users" } 
      //); 

      //config.Routes.MapHttpRoute(
      // name: "DefaultApi", 
      // routeTemplate: "api/{controller}/{id}", 
      // defaults: new { id = RouteParameter.Optional }, 
      // constraints: null, 
      // handler: tokenInspector 
      //); 
      //end1 


      config.Routes.MapHttpRoute(name: "DefaultApiWithAction", 
          routeTemplate: "api/{controller}/{action}/{id}", 
          defaults: new { id = RouteParameter.Optional }); 

      config.Routes.MapHttpRoute(name: "DefaultApiWithActionAndTwoParams", 
         routeTemplate: "api/{controller}/{action}/{id1}/{id2}", 
         defaults: new { id = RouteParameter.Optional }); 

      config.Routes.MapHttpRoute(name: "DefaultApiWithActionAndFiveParams", 
            routeTemplate: "api/{controller}/{action}/{id1}/{id2}/{id3}/{id4}/{id5}/{id6}", 
            defaults: new { id = RouteParameter.Optional }); 

      //Old Code. 
      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 

      config.EnableQuerySupport(); 

      // To disable tracing in your application, please comment out or remove the following line of code 
      // For more information, refer to: http://www.asp.net/web-api 



      var json = config.Formatters.JsonFormatter; 
      json.SerializerSettings.PreserveReferencesHandling = 
       Newtonsoft.Json.PreserveReferencesHandling.None; 

      config.Formatters.Remove(config.Formatters.XmlFormatter); 
      config.EnableSystemDiagnosticsTracing(); 
     } 
    } 
} 

Getting ниже ошибки 'EnableQuerySupport': -'System.Web.Http.HttpConfiguration' не содержит определения для

'System.Web.Http.HttpConfiguration' does not contain a definition for 'EnableQuerySupport' and no extension method 'EnableQuerySupport' accepting a first argument of type 'System.Web.Http.HttpConfiguration' could be found (are you missing a using directive or an assembly reference?)

+0

Я проверил версию system.web.http и корректная. – user3705566

ответ

0

Проверить System.Web.Http.OData.dll - это где этот метод исходит из, по MSDN

+1

Хорошо. Теперь он ушел. Спасибо. Но я получаю аналогичную ошибку для «EnableSystemDiagnosticsTracing», пожалуйста, дайте мне знать, что может быть проблемой. – user3705566

+0

Обратите внимание, что этот метод устарел. https://msdn.microsoft.com/en-us/library/system.web.http.odata.enablequeryattribute(v=vs.118).aspx –

9

в Visual Studio в меню «Сервис», а затем «NuGet Package Manager», а затем «Диспетчер пакеты консоль»

Выполнить следующую команду и точно Я исправляю проблему. Протестируйте его.

обновление-пакет microsoft.aspnet.webapi -reinstall

Смежные вопросы