我对我所看到的有点困惑,因此前往 SO。
我正在开发 BizTalk (2010) 编排,我想解析传入的 XML 消息。我只需要检索特定节点重复的次数。我本可以使用 XPath。但是,我选择使用 LinqToXml。
我创建了一个类型变量System.Xml.Linq.XNamespace
并在表达式形状内,我为其分配了一个字符串值.. 说http://mycompany/v1.0
。这是一个完全有效的 C# 语句,因为存在从 String 到 XNamespace 的隐式转换(MSDN 链接)。
但是编排根本不会编译。我得到这个错误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 尝试了所有这些代码片段,并且得到了预期的响应。因此,没有错别字或缺少参考。