私の質問は本質的に単純なものですが、私はここで可能な答えを深く探しています:LINQ to XMLはどのように舞台裏で動作しますか?LINQ to XML - どのように機能しますか?
LINQ to XMLを多種多様なアプリケーションで使用しているので、インタフェースは私にとっては奇妙なことではありませんが、内部動作の仕方は全く分かりません。今、私はLINQプロバイダがどのように動作するかについていくつかの理解を持っています(IQueryable
とIQueryProvider
を実装して、ビジターパターンを本質的に利用しています)。しかし、私はLINQ for LINQ for XMLに関する何かを発見することはできませんでした。反射鏡を使っていても、どこにでもいられませんでした。最も興味深いことに、私はSystem.Xml.Linq
アセンブリ/名前空間内でLINQプロバイダ(実装IQueryProvider
)の証拠を見つけることができませんでした。
LINQからXMLモデルを観察すると、それはLINQクエリと関連する構文がテクノロジにとって非常に重要ではないように見えるという点で、私はかなり独特のLINQ形式です。多くの便利な拡張メソッドを提供する問い合わせ可能なDOMモデルの周りにあります。だから私が最初に知りたいのは、LINQ to XMLは、標準的な意味でのクエリプロバイダ(たとえばLINQ to SQLがある)を持っているのでしょうか、それとも本質的に拡張メソッドを持つフレームワークです。使用を容易にするためにLINQ to Objectsを使用します。また、XMLコードからDOM階層への構文解析/変換がどのように行われているのか、興味があります - XDocument
qutieは、この意味では古いXmlDocument
と似ていますか?読み込み時に文書を解析して解釈するために、舞台裏でXmlReader
などを使用していますか?
これはオープンエンドの質問であるため、LINQ to XMLの背後でどのように動作するかに関する情報は、大歓迎です。ここでの私の意図は、主に、この特定のLINQテクノロジがどのように設計されたかの写真を構築して、XMLと同様の構造を持つ形式のためにそれを自分自身でエミュレートしようとしていることです。
ええ、これは私が疑っていたものです。情報をありがとう。 – Noldorin