我通过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的东西。
在此环境中反序列化JSON的标准/最佳方法是什么?
发布于 2019-06-25 11:56:09
我建议您使用一个外部程序来测试JSON反序列化作为一个独立的方法(使用一些第三方库(如牛顿软.NET) )将其编译成一个DLL。然后,通过IDE将其导入到ArchestrA框架中,并使用自己的方法。
这将是一种更好的方法,因为使用ArchestrA脚本,您将无法声明类或使用清单,为了更好的理解,在处理好的结构化JSON反序列化时,应该这样做。
这里有一个问题,避免编译一个外部引用另一个代码库。即使您导入了其他库和所有其他依赖项,也无法在运行时处理该外部调用。有一种方法可以正确导入依赖于其他库来执行的DLL,但在我看来,如果您(或其他不知情的人)要在源代码中进行未来的维护,这并不是最佳实践。
我最后的建议是获取开放库的源代码(如Newtonsoft .NET),并将您的程序与其项目一起作为一个类,并将其编译成一个单独的构建。之后,只需导入库并执行适当的方法调用和类实例。
如果您不喜欢使用单个编译项目,请尝试使用ILMerge将两个库合并为一个库,即使它们具有依赖关系,它也在运行时对ArchestrA对象起作用。
发布于 2019-02-23 18:25:54
我使用newtonsoft .net库将其导入Wonderware IDE (Galaxy>Import>Script函数库)
https://stackoverflow.com/questions/50467489
复制相似问题