私は自分が見ているものに少し混乱しているので、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 を使用してこれらすべてのコード スニペットを試したところ、期待どおりの応答が得られました。したがって、タイプミスや参照の欠落はありません。