字符串到XNamespace BizTalk Orchestration中的隐式转换

时间:2012-12-10 16:17:22

标签: c#-4.0 linq-to-xml biztalk biztalk-2010

我对所看到的东西感到有点困惑,因而走向了SO。

我正在开发BizTalk(2010)Orchestration,我想解析传入的XML消息。我只需要检索特定节点重复的次数。我本可以使用XPath。但是,我选择使用LinqToXml。

我创建了一个System.Xml.Linq.XNamespace类型的变量,在表达式形状中,我为它指定了一个字符串值..说http://mycompany/v1.0。这是一个完全有效的C#语句,因为存在从String到XNamespace(MSDN link)的隐式转换。

但是Orchestration根本不会编译。我收到此错误cannot implicitly convert type System.String to System.Xml.Linq.XNamespace

如果我不使用XNamespace变量并直接在传入的消息上运行LinqToXml

MessageCount = MyXElement.Elements("{http://mycompany/v1.0}ListOfNotifications").Elements("{http://mycompany/v1.0}Notification").Count();

我收到cannot convert from String to XName错误。即使这很令人困惑。

我正在使用BizTalk 2010和C#4.0。有人可以解释我是否遗漏了什么?我已经使用LinqPad尝试了所有这些代码片段,我得到了预期的响应。所以,没有拼写错误或缺少参考文献。

1 个答案:

答案 0 :(得分:0)

我选择使用XPath选项来检索我需要的值,而不是使用LinqToXml。我最后编写的代码如下所示:

xpath(myOrchVariable, "string(/*[local-name()='InputRootNode' and namespace-uri()='http://my/name/space'])")