无论传递的布尔值如何,我的BizTalk functoid都返回true值

时间:2016-09-15 12:50:06

标签: c# biztalk biztalk-2013r2

我的BizTalk应用程序出现问题

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

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

我遇到的问题是该值始终返回真值。我正在使用BizTalk Server 2013 R2

2 个答案:

答案 0 :(得分: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#时,我总是发现更容易假设所有参数都是字符串。 如果您使用其他类型,将为您执行一些隐式解析。我宁愿自己执行解析,因为我不知道隐式解析是如何工作的。

答案 1 :(得分:0)

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

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

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