0

我在 Wonderware ArchestrA IDE (2012 R2) 中为可空类型分配值时遇到问题。

我导入的 .NET 类如下所示:

    public class TestObject
    {
        public string Name { get; set; }

        public Nullable<int> MyNullableInt { get; set; }

        public int MyInt { get; set; }
    }

然后我使用 Import -> Script Function Library 将其导入 Galaxy。

然后,我的 ArchestrA 脚本实际上由以下内容组成:

dim NT as NullTest.TestObject;
NT = new NullTest.TestObject;
NT.MyNullableInt = 3;

脚本验证,但分配给MyNullableInt会导致在管理控制台中记录脚本错误:

ProdCapability_001.GetMESWOData:{0896E675-F7D7-4F77-9FD2-20477058E072}:JIT 编译器遇到内部限制。

.NET 4.5 安装在服务器上。Wonderware Application Server 中导入的 .NET 类可以不使用 Nullable 类型吗?还是我错过了什么?

4

2 回答 2

1

发现不支持泛型,这解释了奇怪的“未找到构造函数重载”消息。从 ArchestrA IDE 帮助:

尽管 QuickScript 支持使用 .NET CLR 版本 2.0.50727 构建的导入库,但它不支持 .NET 2.0 引入的任何新语言功能,例如泛型。

因此,看起来我需要创建一个类,该类支持为我希望能够为其分配 null 的每个 .NET 值类型分配 null,而不是使用 Nullable 类。

于 2013-10-08T10:41:40.447 回答
0

Wonderware 缺少一些功能(空值、泛型、异常处理、使用语句)。但是,如果我没记错的话,您可以在某些情况下使用 DBNull(例如,如果您想要表格中的空白单元格或者如果您正在向数据库写入空值)。

https://msdn.microsoft.com/en-us/library/system.dbnull.value%28v=vs.110%29.aspx

于 2015-04-25T00:06:39.840 回答