调用类的静态成员

默认情况下,规则引擎要求你断言 .NET 类的一个实例来执行一项策略,该策略可调用 .NET 类的静态成员。 可以通过将“HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0”下的 StaticSupport 注册表项的值更改为下表中的值之一来修改此行为。

StaticSupport 注册表值 规则引擎行为
0 默认值。 规则引擎遵循 BizTalk Server 2004 模型,在该模型中,只有断言 .NET 类的某个实例后才能调用静态方法。
1 对象实例不是必需的。 将在评估或执行规则时调用静态方法。
2 对象实例不是必需的。 如果所有参数都是常数,则将在策略转换时调用静态方法。 这是一种性能优化,因为尽管静态方法在条件中的多个规则中使用,但只会调用一次。 请注意,用作操作的静态方法将不能在转换时执行,不过用作参数的静态方法可以在转换时执行。

添加和更改 StaticSupport 注册表项

如果在 HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0下看不到 StaticSupport 注册表项,则应通过执行以下步骤添加它。

添加 StaticSupport 注册表项

  1. 单击 “开始”,单击“ 运行”,键入 “RegEdit”,然后单击“ 确定”。

  2. 依次展开 “HKEY_LOCAL_MACHINE”、“ 软件”、“ Microsoft”、“ BusinessRules”,然后选择“ 3.0”。

  3. 在右窗格中,右键单击,指向 “新建”,然后单击“ DWORD 值”。

  4. 对于 “名称”,键入 StaticSupport

    如果 StaticSupport 注册表项已存在,并且需要更改其值,请执行以下步骤。

重要

如果在 64 位计算机上安装 BizTalk,则可以使用以下选项之一添加 StaticSupport 注册表项:

  • 你需要在 HKLM\Software\Wow6432Node\Microsoft\BusinessRules\3.0 下查找。 如果此密钥存在,则可以在此处添加 StaticSupport
    • 另一个选项是将 StaticSupport 放在 BTNTsvc[64].exe.config 文件中,因为此处的任何设置都替代注册表中的内容。 此外还可以得出的结论就是,此选项是一个首选选项,因为它会将默认行为中的更改仅隔离到 BizTalk,而注册表设置是针对操作系统的全局设置。

更改 StaticSupport 注册表项的值

  1. 单击 “开始”,单击“ 运行”,键入 “RegEdit”,然后单击“ 确定”。

  2. 展开 HKEY_LOCAL_MACHINE软件MicrosoftBusinessRules,然后展开 3.0

  3. 双击 StaticSupport 注册表项,或右键单击它,然后单击“ 修改”。