我无法安装system.net.http

时间:2017-12-19 22:46:36

标签: c# system.net

我在web api 2中有一个.net 4.6.1项目,其中我尝试添加自定义ValidateModelAttribute,但我收到system.net.http 4.0程序集的警告。

enter image description here

以下是装配属性

enter image description here

我已尝试多次删除并重新安装软件包但我仍然收到相同的警告。当我尝试使用CustomModelAttribute来自Postman的api调用时会抛出以下错误

  

{

     

“消息”:“发生了错误。”,

     

“ExceptionMessage”:“找不到方法:'System.Net.Http.HttpRequestMessage   System.Web.Http.Controllers.HttpActionContext.get_Request()”。“,

     

“ExceptionType”:“System.MissingMethodException”,

     

“StackTrace”:“at myapi.Api.Mvc.Filters.ValidateModelAttribute.OnActionExecuting(HttpActionContext)   actionContext)\ r \ n at   System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutingAsync(HttpActionContext   actionContext,CancellationToken cancellationToken)\ r \ n ---结束   从抛出异常的先前位置堆栈跟踪--- \ r \ n   在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n at   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n at   System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext(个)\ r \ n ---   从抛出异常的先前位置开始的堆栈跟踪结束   --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n at   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n at   System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext(个)\ r \ n ---   从抛出异常的先前位置开始的堆栈跟踪结束   --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n at   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n at   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);
            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我终于开始工作了。我所要做的就是右键单击system.net.http程序集并单击属性。然后我将copy local设置为true