问题标签 [system.web.http]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14923 浏览

c# - .net Core 2.1 中缺少 System.Web.Http

我的 .net core 2.1 项目中缺少 System.Web.Http。

错误状态

错误 CS0234 命名空间“System.Web”中不存在类型或命名空间名称“Http”(您是否缺少程序集引用?)

请参考图片以获得更清晰的信息

参考

0 投票
1 回答
391 浏览

c# - Nunit 测试项目中缺少 System.Web.Http 方法

我正在为ApiController. 我继续收到命名空间System.MissingMethodException中方法的多个异常System.Web.Http

消息:System.MissingMethodException:找不到方法:'System.Net.Http.HttpRequestMessage System.Web.Http.ApiController.get_Request()'。

消息:System.MissingMethodException:找不到方法:'System.Threading.Tasks.Task`1 System.Web.Http.IHttpActionResult.ExecuteAsync(System.Threading.CancellationToken)'。

测试项目编译得很好,具有正确的 using 语句、包引用和绑定。但是,一旦它尝试运行,就会抛出上述异常之一(以首先遇到的为准,具体取决于代码的结构)。还可能值得注意的是,当System.Web.Http不使用方法时,测试项目运行得很好。

我希望这个问题有我的答案,但我找不到任何差异。我已经多次卸载/重新安装。验证两个项目使用相同的版本(5.2.7.0)。通过在调试期间查看模块来验证正在使用的版本。并验证两个项目的参考路径都指向正确的 nuget 包文件夹:(...\Main\src\packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http. dll)

以下是包装和绑定信息,如果需要其他任何内容,请告诉我。我已经浪费了几天的时间,任何帮助将不胜感激。

主项目-packages.config

主项目 - web.config 绑定

测试项目 - packages.config

测试项目 - app.config 绑定

编辑 - 添加项目参考和模块屏幕截图

主要项目 - csproj 参考资料

测试项目 - csproj 参考

调试期间模块窗口的屏幕截图,显示加载的程序集 模块窗口

0 投票
0 回答
385 浏览

c# - 无法添加参考:System.Web.Http 4.0.0

我正在尝试做的事情:

在第一次构建我的解决方案时,我看到与缺少命名空间相关的错误。他们有一个代码

CS0234:命名空间“System.Web”中不存在类型或命名空间名称“Http”(您是否缺少程序集引用?)

到目前为止我已经尝试过但对我不起作用:

.net 4.5 升级后 System.Web.Http 丢失

System.Net.Http:命名空间中缺少?(使用.net 4.5)

无法添加对我的项目的引用 - 它根本没有检测到它

我试图从我自己的角度做但似乎不起作用:

Nuget 的官方网站上,我正在尝试使用包管理器命令安装此包:

但是,我在控制台上看到以下错误

在此处输入图像描述

我想从你这里得到什么:

在这一点上,解决此问题的唯一方法是联系我的其他团队成员并要求他们将丢失的邮件发送给我.dll。但我会鼓励一个答案,通过指向根来帮助我解决这个问题此问题的原因以及是否有其他方法可以获取此缺少的参考。

有用的说明

我正在Visual Studio 2019上构建此解决方案,该解决方案指向 . net framework version 4. 我遇到了建议将框架版本更改为4.5. 但即使在那之后我在参考文献中也找不到 .dll (是的,我已经检查了扩展和框架

0 投票
2 回答
1604 浏览

c# - .NET 5 项目中 System.Web.Http 的 HttpConfiguration

更新:

完整的代码示例:

原来的:

我正在按照本指南进行模拟IHttpClientFactory

https://stackoverflow.com/a/54227679/3850405

为了使它工作,我需要以下行:

在此处输入图像描述

Visual Studios 修复是Install package 'Microsoft.AspNet.WebApi.Core'.

这有效,代码运行良好,但我收到以下警告:

警告 NU1701 包 'Microsoft.AspNet.WebApi.Core 5.2.7' 已使用 '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version =v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' 而不是项目目标框架'net5.0'。此软件包可能与您的项目不完全兼容。

我尝试安装Microsoft.AspNetCore.Mvc.WebApiCompatShim下面推荐的,但它不起作用。

https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.WebApiCompatShim

https://stackoverflow.com/a/57279121/3850405

是否有另一个 NuGet 可以用来解决这个问题?

查看依赖关系Microsoft.AspNet.WebApi.Core只依赖于Microsoft.AspNet.WebApi.Client它反过来使用.NETStandard 2.0. 理想情况下,我不想创建一个新的项目目标.NET Standard 2.0并将代码放在那里。我想使用该.NET 5 项目。

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Core/

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Client/

https://docs.microsoft.com/en-us/dotnet/standard/net-standard

0 投票
1 回答
37 浏览

c# - C# 模型绑定复杂属性

在我的 REST API 中,我的模型绑定没有映射作为对象列表的属性。它正确地到达控制器,并显示所有属性,但它们是空的。

例如,对于 POST 请求{age: 202, setting: ["school"]},我在响应中得到如下内容:

我希望它回应这样的事情:

如何引导它将设置参数解析为List<Setting>?

这是控制器:

这是模型:

这是设置类:

我开始沿着这条路径手动解析事物,但这是 JObject、JToken、JArray 的噩梦。

也许我需要一个自定义绑定模型?我迷失了试图弄清楚如何构建和使用一个。