BizTalk映射在转换开始时未调用脚本functoid使用的帮助器类的默认构造函数

BizTalk映射在转换开始时未调用脚本functoid使用的帮助器类的默认构造函数,biztalk,Biztalk,我正在地图中使用脚本functoid。我使用serializable类的外部程序集助手方法配置了脚本functoid。我注意到,当map第一次执行时,调用了外部程序集中定义的可序列化帮助器类构造函数,我是init。类成员的默认值,并按预期工作 在下一次/第二次运行中,类构造函数不会被map调用,并且类成员会在最后一次执行map期间保留设置的值。我在编曲中使用map,我的编曲不是singelton。所以,每次在第一次执行映射后,helper类总是向script functoid返回相同的值 请帮助

我正在地图中使用脚本functoid。我使用serializable类的外部程序集助手方法配置了脚本functoid。我注意到,当map第一次执行时,调用了外部程序集中定义的可序列化帮助器类构造函数,我是init。类成员的默认值,并按预期工作

在下一次/第二次运行中,类构造函数不会被map调用,并且类成员会在最后一次执行map期间保留设置的值。我在编曲中使用map,我的编曲不是singelton。所以,每次在第一次执行映射后,helper类总是向script functoid返回相同的值


请帮助我如何在每次映射执行期间强制biztalk创建映射帮助器类的新实例???

请参阅此帖子。不能有静态类-helper方法必须是静态的,但每次都需要在静态方法中执行初始化。这是为了在再水化/脱水过程中进行状态管理而做的。

请参阅这篇文章。不能有静态类-helper方法必须是静态的,但每次都需要在静态方法中执行初始化。这是为了在再水合/脱水期间进行状态管理而完成的。

BizTalk运行时缓存给定映射类型的扩展对象实例。对于使用构造函数的每个主机实例,只会调用一次构造函数


但是,可以为地图辅助对象创建factory类。从脚本functoid调用此工厂类,并将输出链接到内联C#functoid,该functoid将对象存储在映射的实例字段中。您可以在需要调用助手方法的其他脚本functoid中引用该字段。

BizTalk运行时会缓存给定映射类型的扩展对象实例。对于使用构造函数的每个主机实例,只会调用一次构造函数


但是,可以为地图辅助对象创建factory类。从脚本functoid调用此工厂类,并将输出链接到内联C#functoid,该functoid将对象存储在映射的实例字段中。您可以在需要调用帮助程序方法的其他脚本functoid中引用该字段。

能否向我们展示帮助程序类的构造函数?将帮助程序类设置为静态。这将导致期望的行为。我认为任何人都无法强制BizTalk按您希望的方式调用您的代码。您将必须使用BizTalk,而不是反对它…您可以向我们展示帮助器类的构造函数吗?请将帮助器类设置为静态。这将导致期望的行为。我认为任何人都无法强制BizTalk按您希望的方式调用您的代码。您必须使用BizTalk,而不是反对它…我没有使用静态类,并且帮助器方法也不是静态的。我看到map每次都调用实例方法,但不调用默认构造函数。请尝试使用。您的方法应该始终是静态的,即使BizTalk允许调用非静态方法。这也让我感到困惑,我并没有使用静态类,而且helper方法也不是静态的。我看到map每次都调用实例方法,但不调用默认构造函数。请尝试使用。您的方法应该始终是静态的,即使BizTalk允许调用非静态方法。这也总是让我感到困惑。