1

XmlDocumentこれは非推奨のクラスであり、代わりに使用する必要があると思いXDocumentます。しかしTileUpdateManager.GetTemplateContent、Windows8UXコアリターンXmlDocumentクラスから。新しいAPIになるとすぐに、ここでXmlDocumentを使用する理由は何でしょうか。

4

2 に答える 2

1

XmlDocumentクラスはしばらくの間.Netにあり、そのように維持することを好んだかもしれません。もう1つの理由は、多言語サポートがあることかもしれません。

関数を別の関数でラップ/装飾することができます。XmlDocumentをXDocumentに変換するさまざまな方法があります

  private static XDocument DocumentToXDocument(XmlDocument doc)
  {
    return XDocument.Parse(doc.OuterXml);
  }

  private static XDocument DocumentToXDocumentNavigator(XmlDocument doc)
  {
    return XDocument.Load(doc.CreateNavigator().ReadSubtree());
  }

  private static XDocument DocumentToXDocumentReader(XmlDocument doc)
  {
    return XDocument.Load(new XmlNodeReader(doc));
  }
于 2012-05-16T17:00:36.667 に答える
1

(私はXDocumentを使用してLinq2XMLとXmlDocumentをSystem.XML APIに参照しています)

私が見ることができる理由:

  1. XDocumentには、.NET固有のLINQが必要です。Windows StoreアプリもJavaScriptでビルドできるため、JavaScriptと.NETの両方で機能するXDocumentをビルドする場合は、LINQも移植する必要があり、エンジニアリングタスクは膨大になります。
  2. XDocumentは、機能的な方法でXMLを操作しますが、これは非常に標準的ではありません。XMLを操作する標準的な方法は、DOMモデルを使用することです。したがって、XmlDocumentは、他の場所で機能する方法とより整合性のある方法を提供します。
  3. XDocumentが通常のXmlReaderクラスの上に構築される場合、それらは別個のAPIであると考えていると思います。したがって、XmlDocumentを完全に書き直さない限り、常にそれが必要になります。新しいバージョンで他の何かの中に隠すことができるように、うまく機能するものを書き直すことの価値は何ですか。
  4. 新しいAPIには多くのクリーンアップと改善が行われていますが、COMと現在使用している多くの組み込みWindows APIの上に構築されていることを忘れないでください(この抽象化は、将来変更される必要があることを意味します影響はありませんが、現在はカーネルと直接通信していません)。そのため、既存のツールとライブラリを利用している可能性があります。これらはすべてDOMベースであり、XmlDocumentとの整合性が高くなっています。
于 2012-10-17T10:07:22.080 に答える