Не могу установить system.net.http

У меня есть проект web api 2 в .net 4.6.1, в который я пытаюсь добавить пользовательский ValidateModelAttribute, но получаю предупреждение для сборки system.net.http 4.0.

введите описание изображения здесь

Вот свойства сборки

введите описание изображения здесь

Я пытался удалить и переустановить пакет несколько раз, но получаю одно и то же предупреждение. И когда я пытаюсь использовать CustomModelAttribute, вызов api от Postman выдает следующую ошибку

{

«Сообщение»: «Произошла ошибка.»,

«ExceptionMessage»: «Метод не найден: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request ()'.»,

"ExceptionType": "System.MissingMethodException",

«StackTrace»: «в myapi.Api.Mvc.Filters.ValidateModelAttribute.OnActionExecuting (HttpActionContext actionContext) \ r \ n в System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutingAsyncContext \ r \ nActionExecutingAsyncText, cancellationText, CancellationExecutingAsyncText (действие) - Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи ) \ r \ n в System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime .CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в System.Web.Http.Controllers.Nulte__ \ n --- Конец трассировки стека f из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) \ r \ n в System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext () "}

Вот настраиваемый атрибут

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

person Train    schedule 19.12.2017    source источник


Ответы (1)


Наконец-то я заставил его работать. Все, что мне нужно было сделать, это щелкнуть правой кнопкой мыши system.net.http сборку и выбрать свойства. Затем я установил copy local на true

person Train    schedule 19.12.2017