【问题标题】:Why are there multiple Namespaces for one class?为什么一个类有多个命名空间?
【发布时间】:2019-05-12 14:28:07
【问题描述】:

所以我注意到我可以在一个类的多个命名空间之间进行选择。

我的班级是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 实际上是否相同(具有相同的类/等)?

【问题讨论】:

    标签: .net namespaces frameworks assemblies


    【解决方案1】:

    命名空间的目的是声明一个包含一组相关对象的范围。

    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 架构定义语言 (XSD) 架构提供基于标准的支持的 XML 类

    System.Xml.Linq

    • 包含 LINQ to XML 的类。 LINQ to XML 是一种内存中 XML 编程接口,可让您高效轻松地修改 XML 文档

    他们可能都引用了类似的程序集,但他们需要这样才能完成他们的任务。这就是我们首先拆分代码的原因。 可重用性

    【讨论】:

      猜你喜欢
      • 2014-10-18
      • 1970-01-01
      • 2011-03-20
      • 2015-09-02
      • 2011-09-13
      • 2011-03-21
      • 2012-11-09
      • 1970-01-01
      相关资源
      最近更新 更多