Почему существует несколько пространств имен для одного класса? - PullRequest
0 голосов
/ 11 декабря 2018

Итак, я заметил, что могу выбирать между несколькими пространствами имен для класса.

Мой класс Extensions Я могу использовать одно из этих трех пространств имен:

using System.Xml.XPath;
using System.Xml.Schema;
using System.Xml.Linq;

Почему это так?так?Я знаю, что все эти пространства имен имеют разные Методы / Классы / Интерфейсы / Перечисления / Делегаты.

Но почему нет чего-то вроде

using System.Xml.Everything;

?

Будетэти разные Методы / Классы / Интерфейсы / Перечисления / Делегаты мешают друг другу?

Или все так легче читать и управлять?

Или обе причины (+ даже больше)?Или я совершенно не прав во всем?: D

Другой вопрос, который у меня есть

System.Xml.Linq // Assemblies: System.Xml.XDocument.dll, System.Xml.Linq.dll, netstandard.dll

и

System.Xml.Schema // Assemblies: System.Xml.Linq.dll, netstandard.dll, System.Xml.XDocument.dll

, имеют те же три сборки.Что это значит здесь?Linq и Schema на самом деле одинаковы (имеют одинаковые классы и т. Д.)?

1 Ответ

0 голосов
/ 12 декабря 2018

Цель пространства имен состоит в том, чтобы объявить область, которая содержит набор связанных объектов.

using System.Xml.XPath;
using System.Xml.Schema;
using System.Xml.Linq;

Вышеупомянутые 3 пространства имен содержат разные классы, которые имеют разные обязанности.

System.Xml.XPath

  • Содержит классы, которые определяют модель курсора для навигации и редактирования информационных элементов XML как экземпляров XQuery 1.0 и XPath 2.0Модель данных

System.Xml.Schema

  • Содержит классы XML, обеспечивающие основанную на стандартах поддержку схем языка определения схем XML (XSD).

System.Xml.Linq

  • Содержит классы для LINQ to XML.LINQ to XML - это интерфейс программирования XML в памяти, который позволяет эффективно и легко изменять XML-документы

Все они могут ссылаться на аналогичные сборки, но им требуется это для выполнения своей задачи.Это причина того, что мы в первую очередь разделили наш код. 1031 * Повторное использование *.

...