web-dev-qa-db-fra.com

'System.Web.Http.HttpConfiguration' ne contient pas de définition pour 'EnableQuerySupport'

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();
        }
    }
}

Obtenir l'erreur ci-dessous: -

'System.Web.Http.HttpConfiguration' ne contient pas de définition pour 'EnableQuerySupport' et aucune méthode d'extension 'EnableQuerySupport' Accepte un premier argument de type 'System.Web.Http.HttpConfiguration' pourrait être trouvé (il vous manque une directive d'utilisation ou une référence d'assemblage ?)

10
user3705566

Dans Visual Studio, allez dans "Outils", puis "Gestionnaire de packages Nuget", puis "Console du gestionnaire de packages". 

Exécutez la commande ci-dessous et cela résoudra le problème. Je l'ai testé. 

package de mise à jour Microsoft.aspnet.webapi -reinstall

10
Navish Rampal

Remarque: cette API est maintenant obsolète.

https://msdn.Microsoft.com/de-de/library/jj918506(v=vs.118).aspx

1
Rookian

Vérifiez System.Web.Http.OData.dll - d’où provient cette méthode, selon MSDN

0
Alex Buyny