问题标签 [namespaces]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
19833 浏览

c# - 为什么没有正确找到我的 App_Code 文件夹中子文件夹中的类?

将类文件放入 App_Code 文件夹的子文件夹时出现以下错误:

errorCS0246:找不到类型或命名空间名称“MyClassName”(您是否缺少 using 指令或程序集引用?)

这个类根本不在命名空间中。有任何想法吗?

0 投票
2 回答
875 浏览

.net - .NET 中的“global::System”和“System”有什么区别?

我刚刚将 VS 2005 项目升级到 VS 2008 并正在检查更改。我注意到其中一个 .Designer.cs 文件发生了显着变化。大多数更改只是将System替换为global::System。例如,

变成了

这里发生了什么?

0 投票
10 回答
11595 浏览

java - 如果我没有与我关联的域,我应该如何命名包?

因此,大多数 Java 资源在谈到包时都会提到com.yourcompany.project设置。但是,我不在公司工作,也没有网站。是否有任何通用的命名约定?一个电子邮件地址,也许?

0 投票
7 回答
45891 浏览

c++ - 如何“取消使用”命名空间?

我的开发系统(Codegear C++Builder)的变幻莫测之一是一些自动生成的标题坚持...

...其中的语句,当我最不想要或期望它时会影响我的代码。

有没有办法我可以以某种方式取消/覆盖以前的“使用”语句来避免这种情况。

也许...

0 投票
3 回答
20569 浏览

c++ - C++ 中的命名空间和运算符重载

在特定命名空间中编写库时,为该命名空间中的类提供重载运算符通常很方便。似乎(至少在 g++ 中)重载的运算符可以在库的命名空间中实现:

或全局命名空间

根据我的测试,它们似乎都运行良好。这两个选项之间有什么实际区别吗?哪种方法更好?

0 投票
4 回答
3244 浏览

c# - 相同的类,不同的命名空间,一种简化的方法?

我正在使用一个跨两个命名空间提供几乎重复代码的 Web 服务。例如 PigFeet 和 HorseFeet,这两个命名空间都包含一个 Feet 类,而与 Feet 类一起使用的其他代码要求它是同一个命名空间的一部分。

现在在我的代码中,我被迫做这样的事情:

这给我留下了很多重复的代码。有没有办法更动态地选择命名空间?

0 投票
13 回答
41921 浏览

objective-c - 解决 Objective-C 命名空间冲突的最佳方法是什么?

Objective-C 没有命名空间;它很像 C,一切都在一个全局命名空间中。通常的做法是在类前面加上首字母,例如,如果你在 IBM 工作,你可以在它们前面加上“IBM”;如果你为微软工作,你可以使用“MS”;等等。有时缩写是指项目,例如 Adium 为类加上“AI”前缀(因为它背后没有公司,你可以使用缩写)。Apple 用 NS 为类添加前缀,并表示此前缀仅供 Apple 使用。

到目前为止一切顺利。但是在前面的类名后面附加 2 到 4 个字母是一个非常非常有限的命名空间。例如,MS 或 AI 可能具有完全不同的含义(例如 AI 可能是人工智能),其他一些开发人员可能决定使用它们并创建一个同名的类。Bang,命名空间冲突。

好的,如果这是您自己的一个类和您正在使用的外部框架之一之间的冲突,您可以轻松更改类的命名,没什么大不了的。但是,如果您使用两个外部框架,这两个框架您都没有源代码并且无法更改,该怎么办?您的应用程序与它们都链接,并且您会遇到名称冲突。你将如何解决这些问题?以您仍然可以使用这两个类的方式解决它们的最佳方法是什么?

在 C 中,您可以通过不直接链接到库来解决这些问题,而是在运行时使用 dlopen() 加载库,然后使用 dlsym() 找到您要查找的符号并将其分配给全局符号(您可以以任何你喜欢的方式命名),然后通过这个全局符号访问它。例如,如果您因为某个 C 库有一个名为 open() 的函数而发生冲突,您可以定义一个名为 myOpen 的变量并让它指向该库的 open() 函数,因此当您想使用系统 open() ,您只需使用 open() ,当您想使用另一个时,您可以通过 myOpen 标识符访问它。

在 Objective-C 中是否有类似的可能,如果没有,是否有任何其他聪明、棘手的解决方案可以用来解决命名空间冲突?有任何想法吗?


更新:

只是为了澄清这一点:当然欢迎建议如何提前避免命名空间冲突或如何创建更好的命名空间的答案;但是,我不会接受它们作为答案,因为它们不能解决我的问题。我有两个库,它们的类名发生冲突。我无法改变它们;我没有任何一个的来源。碰撞已经存在,关于如何提前避免碰撞的提示将不再有帮助。我可以将它们转发给这些框架的开发人员,并希望他们将来选择更好的命名空间,但目前我正在寻找一种解决方案,以便现在在单个应用程序中使用这些框架。有什么解决方案可以使这成为可能吗?

0 投票
5 回答
144862 浏览

web-services - tempuri.org 是什么?

tempuri.org 为什么存在?为什么每个 XML Webservice 都需要自己的命名空间,与 Web 上的任何其他服务不同?

0 投票
3 回答
5119 浏览

html - 通过 Linq to XML 查询时如何处理任意命名空间?

我有一个项目,我正在使用一些特别丑陋的“实时”HTML,并使用 HTML Agility Pack 将其强制转换为正式的 XML DOM。然后我想要做的是使用 Linq to XML 查询这个,以便我可以刮出我需要的位。我正在使用此处描述的方法将HtmlDocument 解析为 XDocument,但是在尝试对此进行查询时,我不确定如何处理命名空间。在一个特定的文档中,原始 HTML 实际上是带有以下标记的格式很差的 XHTML:

尝试从此文档中查询时,似乎命名空间属性阻止我执行以下操作:

显然,对于那些“div”标签,只有 LocalName 是“div”,但正确的标签名称是命名空间加上“div”。我试图对 XML 命名空间的问题进行一些研究,似乎我可以通过这种方式查询来绕过命名空间:

然而,这似乎是一个相当老套的解决方案,并没有正确解决命名空间问题。据我了解,正确的 XML 文档可以包含多个名称空间,因此处理它的正确方法应该是解析出我正在查询的名称空间。有没有其他人不得不这样做?我只是让它变得复杂吗?我知道我可以通过坚持使用 HtmlDocument 并使用 XPath 查询来避免这一切,但如果可能的话,我宁愿坚持我所知道的(Linq),我也更愿意知道我没有为进一步的命名空间做准备——相关问题在路上。

在这种情况下处理命名空间的正确方法是什么?

0 投票
9 回答
9887 浏览

java - 你真的在java中使用你的反向域来命名包吗?

很久以前,我一直认为,在 java 中,将您拥有的域反转为包命名是愚蠢和尴尬的。

您在项目中使用哪个包命名?