Ich habe eine web api 2
Projekt in .net 4.6.1
, in dem ich versuche, eine benutzerdefinierte ValidateModelAttribute
hinzufügen, aber ich bekomme eine Warnung für die system.net.http 4.0
Montage.Ich kann nicht installieren system.net.http
Hier sind die Montageeigenschaften
ich versucht habe, zu entfernen und das Paket mehrere Male neu zu installieren, aber ich halte die gleiche Warnung bekommen. Und wenn ich versuche, die CustomModelAttribute
der API-Aufruf von Postman zu verwenden, führt den folgenden Fehler
{
"Message": "Ein Fehler ist aufgetreten.",
"ExceptionMessage": „Methode nicht gefunden: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()' ",
"Exception.": "System.MissingMethodException",
"Stacktrace": "in myapi.Api.Mvc.Filters.ValidateModelAttribute.OnActionExecuting (HttpActionContext Action) \ r \ n bei System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutingAsync (HttpActionContext Action, CancellationToken CancellationToken) \ r \ n --- Ende der Stapelüberwachung von früheren Stelle, an der Ausnahme geworfen wurde --- \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Aufgabe Task) \ r \ n bei System.Runtime .CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Task) \ r \ n bei System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() \ r \ n --- Ende der Stapelüberwachung von vorheriger Position whe re Ausnahme geworfen wurde --- \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Aufgabe Task) \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Task) \ r \ n unter System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() \ r \ n --- Ende des Stack-Trace vom vorherigen Speicherort, an dem die Ausnahme ausgelöst wurde --- \ r \ n bei System.Runtime. CompilerServices.TaskAwaiter.ThrowForNonSuccess (Aufgabe Task) \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Task) \ r \ n bei System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext () " }
Hier ist der Brauch
Attributusing System.Net;
using System.Web.Http.Controllers;
using System.Net.Http;
using System.Web.Http.Filters;
namespace myapi.Api.Mvc.Filters
{
public class ValidateModelAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
if (actionContext.ModelState.IsValid == false)
{
actionContext.Response = actionContext.Request.CreateErrorResponse(
HttpStatusCode.BadRequest, actionContext.ModelState);
}
}
}
}
Mögliche Duplikat [HttpActionContext.get \ _request() -Methode nicht gefunden bei der Verwendung von Microsoft Asp.NET Dependency Injection] (https://stackoverflow.com/questions/46887799/httpactioncontext-get-request -method-nicht-gefunden-wenn-benutze-microsoft-asp-net-de) – Amy