Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#脚本中使用JSON.NET库_C#_.net_Json_Json.net - Fatal编程技术网

在C#脚本中使用JSON.NET库

在C#脚本中使用JSON.NET库,c#,.net,json,json.net,C#,.net,Json,Json.net,我有一个以.cs脚本文件作为输入的程序。我想从脚本中的一个JSON文件中读取数据,我正在尝试使用这个库来完成这项工作。但是,我无法正确引用dll文件以使用其中的函数。 我没有使用VisualStudio来编写脚本,因此无法使用常规方法添加引用 我的代码: //css_reference Newtonsoft.Json.dll; using Newtonsoft; using Newtonsoft.Json; using Newtonsoft.Json.JsonConvert; public cl

我有一个以.cs脚本文件作为输入的程序。我想从脚本中的一个JSON文件中读取数据,我正在尝试使用这个库来完成这项工作。但是,我无法正确引用dll文件以使用其中的函数。 我没有使用VisualStudio来编写脚本,因此无法使用常规方法添加引用

我的代码:

//css_reference Newtonsoft.Json.dll;
using Newtonsoft;
using Newtonsoft.Json;
using Newtonsoft.Json.JsonConvert;
public class Script
{
    public async void Action(String path)
    {
        StreamReader re = new StreamReader("job.json");
        JsonTextReader reader = new JsonTextReader(re);
        JsonSerializer se = new JsonSerializer();
        object parsedData = se.Deserialize(reader);
有三个文件与Newtonsoft库关联,.dll文件、.pdb文件和.Json文件,这三个文件与脚本文件放在同一文件夹中

错误:

在中找不到命名空间Newtonsoft

在中找不到命名空间newtonsoft.Json

如果我使用语句删除这三个
,我会得到StreamReader、JsonTextReaader和JsonSerializer的namespace not found


我想在这个问题上得到帮助。谢谢

从您发布的内容来看,您似乎已经手动安装了JSON.NET,我建议您通过NuGet安装它,这样您的项目在安装过程中应该具有对dll的引用集。我在.NET Framework和.NET核心项目中使用了JSON.NET很多次,我一直都是这样安装的,从来没有遇到过问题。

在脚本中,您需要使用System.Reflection.assembly.load()加载JSON.NET的程序集。然后,您应该能够使用反射来创建JSON.net类的实例并调用它们上的方法。如果将其与动态运行时相结合,您应该能够实例化对象并使用它们。

对我来说,解决方案是在文件顶部使用css\u nuget,如下所示:

//css_nuget Newtonsoft.Json;
using Newtonsoft;
using Newtonsoft.Json;

您是否使用NuGet package manager安装Json.NET?程序如何执行您的脚本?它必须添加对您打算使用的任何程序集的引用。您是否尝试过使用
语句完全限定类名而不是
?尝试在package manager控制台中键入
安装包newtonsoft.json
,然后点击enter@OlegI我只下载了.dll文件并将其放置在与脚本相同的文件夹中。据我所知,NuGet是在我使用Visual studio时使用的,还是我理解错了?我没有使用Visual studio。这是一个简单的c#文件,因此我无法将引用添加到项目中。