1

私は自分が見ているものに少し混乱しているので、SO に向かいました。

BizTalk (2010) オーケストレーションを開発しており、着信 XML メッセージを解析したいと考えています。特定のノードが繰り返されている回数を取得するだけです。XPath を使用することもできました。しかし、私は LinqToXml を使用することにしました。

タイプの変数を作成しSystem.Xml.Linq.XNamespace、式の形状内に文字列値を割り当てています..言うhttp://mycompany/v1.0. String から XNamespace ( MSDN リンク) への暗黙的な変換があるため、これは完全に有効な C# ステートメントです。

しかし、オーケストレーションはまったくコンパイルされません。このエラーが発生します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 を使用してこれらすべてのコード スニペットを試したところ、期待どおりの応答が得られました。したがって、タイプミスや参照の欠落はありません。

4

1 に答える 1

0

XPathLinqToXml を使用する代わりに、オプションを使用して必要な値を取得することにしました。私が書いたコードは次のようになります。

xpath(myOrchVariable, "string(/*[local-name()='InputRootNode' and namespace-uri()='http://my/name/space'])")
于 2012-12-27T15:04:54.903 に答える