我的BizTalk函数返回真值,不管传递的是布尔值

本文关键字:布尔值 不管 函数 BizTalk 返回 我的 | 更新日期: 2023-09-27 18:07:04

我的BizTalk应用程序有问题

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

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

我有一个问题,该值总是返回真实值。我使用的是BizTalk server 2013 R2

我的BizTalk函数返回真值,不管传递的是布尔值

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

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

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

如果确实是xs:boolean,则可以:

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

这是因为MyParam的值只能是三种情况之一,'true', 'false'或"。你只需要测试"真"。这是一种不需要使用[Try]Parse的情况