我有一个程序,该程序将.cs脚本文件作为输入。我想从脚本中的JSON文件中阅读,并且我正在尝试使用JSON.NET库来完成。但是,我无法正确地引用DLL文件以使用内部的功能。我不是使用Visual Studio编写脚本,因此我无法使用常规方法添加参考。
我的代码:
//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文件相关联的三个文件,所有三个文件都将与脚本文件放置在同一文件夹中。
错误:
namepace newtonsoft在...
中找不到名称空间newteonsoft.json在...
中找不到
如果我删除了三个using
语句,我会找到streamReader,jsontextreaader和jsonserializer的名称空间。
我希望就这个问题提供帮助。谢谢!
对我来说,解决方案是在文件顶部使用css_nuget,如这样:
//css_nuget Newtonsoft.Json;
using Newtonsoft;
using Newtonsoft.Json;
从您发布的内容中,看起来您已经手动安装了JSON.NET,我建议您通过Nuget安装它,这样您的项目应该在安装过程中对DLL集的参考过程。我在.NET Framework和.NET Core Projects中使用了JSON.NET很多时间,这就是我一直安装它并且从未遇到问题的方式。
从脚本中,您需要加载json.net的汇编,使用system.reflection.sembly.load()。然后,您应该能够使用反射来创建JSON.NET类的实例并在其上调用方法。如果将其与动态运行时结合在一起,则应该能够实例化对象并与它们合作。