如何将 `System.Web.Extensions` 程序集添加到 vscode 中的 .net 核心项目

How to add `System.Web.Extensions` assembly to .net core project in vscode

我已经为 vscode(版本为 1.15.0)安装了 c# 支持,并通过 dotnet new console 创建了一个 HelloWorld 项目。

现在 Program.cs,我想使用 JavaScriptSerializer class 这取决于 System.Web.Extensions 程序集。我输入了 using System.Web.Script.Serialization; 和 运行 dotnet restore ,但 vscode 无法解析它。错误是,

The type or namespace name 'Web' does not exist in the namespace 'System' (are you missing an assembly reference?)

好像System.Web不是.net core的一部分,但是有什么办法可以把程序集添加到项目中吗?

我找不到在其他帖子中引用的 project.json 文件,因为它是一个 csproj 项目。

dotnet 恢复

dotnet restore - 恢复项目的依赖项和工具。

dotnet restore [<ROOT>] [--configfile] [--disable-parallel] [--ignore-failed-sources] [--no-cache] [--no-dependencies] [--packages] [-r|--runtime] [-s|--source] [-v|--verbosity]
dotnet restore [-h|--help]

更多帮助More Help here

System.Web.Extensions 是完整 .net 框架的一部分。如果你想序列化和反序列化对象,你可以使用Newtonsoft.Json,

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

更新

只需从 NuGet 获取包名和版本号并添加到 .csproj 然后保存。系统将提示您 运行 恢复将导入新包。

<ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
  </ItemGroup>

Here I just want to know how to add assembly.

一般来说,您的 .csproj:

中会有这样的节点
<Reference Include="System.Web.Extensions" />

但是,由于您使用的是 .NET Core,因此您不能 引用针对完整 .NET Framework 的程序集。在这种情况下,System.Web.Extensions 是其中之一,因此您不能在 .NET Core 项目中使用它。

System.Web.Extensions.Serialization 替换为 System.Text.Json.Serialization。两者的用法很相似