在Wonderware中反序列化JSON';s ArchestrA/Quickscript.NET
我通过Wonderware的ArchestraIDE Quickscript.NET脚本语言使用VB/.NET。我看到有很多方法可以在.NET中处理JSON反序列化(DataContractJsonSerializer、JavaScriptSerializer、JSON.NET/Newtonsoft.JSON),但在Wonderware子集中找不到任何方法 JavaScriptSerializer似乎没有包含在Quickscript.NET的.NET框架中,因为ArchestrA无法识别System.Web.Script中的任何内容;DataContractJsonSerializer也不存在(System.Runtime.Serialization.Json不存在) 我在Quickscript.net中也没有找到任何关于json的内容在Wonderware中反序列化JSON';s ArchestrA/Quickscript.NET,json,vb.net,wonderware,Json,Vb.net,Wonderware,我通过Wonderware的ArchestraIDE Quickscript.NET脚本语言使用VB/.NET。我看到有很多方法可以在.NET中处理JSON反序列化(DataContractJsonSerializer、JavaScriptSerializer、JSON.NET/Newtonsoft.JSON),但在Wonderware子集中找不到任何方法 JavaScriptSerializer似乎没有包含在Quickscript.NET的.NET框架中,因为ArchestrA无法识别Syst
在此环境中反序列化JSON的标准/最佳方法是什么?我通过将newtonsoft.net库导入Wonderware IDE(Galaxy>Import>脚本函数库)来使用它
我建议您使用一个外部程序来测试JSON反序列化,作为一个独立的方法(使用一些第三方库,如)将其编译成DLL。然后,稍后通过IDE将其导入ArchestrA框架,并使用您自己的方法 这将是一种更好的方法,因为使用ArchestrA脚本,您将无法声明类或使用列表,这是在处理漂亮的结构化JSON反序列化时为了更好地理解而应该做的一些事情 这里是一个陷阱,避免编译一个代码库,使外部引用另一个。ArchestrA的对象无法在运行时处理该外部调用,即使您导入了其他库和所有其他依赖项。有一种方法可以正确地导入依赖于其他库来执行的DLL,但在我看来,如果您(或其他未经建议的人)打算在源代码中进行将来的维护,这不是最佳做法 我的最后一个建议是获取开放库(如Newtonsoft.NET)的源代码,将您的程序作为一个类与其项目一起生成,并将其编译成单个版本。之后,您只需要导入库并执行适当的方法调用和类实例
如果您不喜欢使用单个编译项目,请尝试使用将两个库合并为一个,即使它们具有依赖关系,它在运行时也会对ArchestrA对象起作用。您可以编写自己的库,并将其作为脚本函数库导入ArchestrA。通过这种方式,您可以更多地访问.NET系统。谢谢-我一直倾向于使用这种解决方案,但认为这有点过分了。目前我正在导入json.net来进行简单的解析,但无法使用它在脚本中进行适当的反序列化,因为似乎不支持泛型或在脚本中创建类的方法。