1

我的 BizTalk 应用程序出现问题

我已经定制了 functoid 以根据它收到的布尔值更改值 她是代码

 public string GetBoolMark(bool param1)
        {
            string returnValue = "0";
            if (param1 == true )
            {
                returnValue = "1";
            }
            return returnValue;
        }

我遇到了一个问题,即该值始终返回真实值。我正在使用 BizTalk 服务器 2013 R2

4

2 回答 2

0

如果它确实是 xs:boolean,你可以这样做:

public MyFunctoid(string MyParam)
{
     if(MyParam == "true")
     {
          return "It was true!";
     }
     return "It was false!";
}

这是因为 MyParam 的值只能是 'true'、'false' 或 '' 这三件事之一。您只需要测试“真”。这是不需要 [Try]Parse 的一种情况。

于 2016-09-19T12:36:58.023 回答
0

将 param1 的类型从 bool 更改为 string。在你的函数内部仔细解析它到一个布尔值,并使用该布尔值来决定返回什么。

 public string GetBoolMark(string param1)
    {
        bool condition;
        string returnValue = "0";

        if (bool.TryParse(param1, out condition) && condition)
        {
            returnValue = "1";
        }
        return returnValue;
    }

在脚本 functoid 中使用内联 C# 时,我总是发现假设所有参数都是字符串更容易。如果您使用其他类型,则会为您执行一些隐式解析。我宁愿自己显式地执行解析,因为我不确切知道隐式解析是如何工作的。

于 2016-09-16T02:26:02.990 回答