调用来自biztalk脚本脚本函数的对象参数的方法
-
13-10-2019 - |
题
我需要从脚本映射中的脚本函数中调用外部组件中的方法,尤其是枚举类型是C#汇编中的参数。这甚至可能吗?我已经通过字符串或整数传递,同时多次调用外部组件,没有问题。
解决方案
不幸的是,您不能在旨在从脚本函数词中调用的方法中使用枚举类型。但是,您几乎可以通过围绕外部方法创建包装器来实现所需的目标。
例如,以下方法无法直接从脚本函数源中调用。
using System;
namespace ExternalAssembly
{
public enum Options
{
OptionNumberOne,
OptionNumberTwo,
}
public class Helper
{
public string DoSomething(Options option)
{
// really do something useful here
return String.Empty;
}
}
}
尝试使用此方法将导致以下错误:
函数'scriptns0:dosomething()'失败了。值要么太大或太小,对于INT32。
但是,如果您编写以下包装法,则如果有效:
public string DoSomething(string option)
{
return Helper.DoSomething(
(Options) Enum.Parse(typeof(Options), option)
);
}
请注意,包装器方法是使用常规字符串参数,而不是原始选项列举的类型。如果您有要调用的方法的源代码,只需将此额外的包装器添加为过载,然后就完成了。
不隶属于 StackOverflow