在您自己的类中使用System.*命名空间是否被认为是不良实践?

7

我有一个名为ConfigurationElementCollection<T>的类

它是System.Configuration.ConfigurationElementCollection的泛型实现

它存储在我们解决方案的Project.Utility.dll中,但我已将其定义为System.Configuration命名空间的一部分

namespace System.Configuration
{
    [ConfigurationCollection(typeof(ConfigurationElement))]
    public class ConfigurationElementCollection<T> : 
        ConfigurationElementCollection where T : ConfigurationElement, new()
    {
       ...
    }
}

把类放在System.*命名空间中是否被认为是不好的做法,如果它们不是System.*基类库的一部分?
表面上看起来是有道理的,因为它将具有相似功能的类放在同一个地方。然而,对于不知道它实际上是非 .net BCL 的人来说,这可能会引起混淆,因为他们不知道去哪里寻找参考资料。

好的,这对我来说已经是一个足够好的草根调查了。谢谢大家。 - Eoin Campbell
2个回答

7

虽然你的类相似,但它仍不是BCL的一部分。因此我不会把它放在System.*中。这会导致混淆,特别是当一个人想要使用它时,他们已经引用了System.*,然后在使用你的类时会收到一个令人不愉快的找不到消息.... :-)


3
我建议您将System替换为您的公司/项目名称或在命名空间中加入您的公司/项目名称前缀,这样可以清楚地表明它不是BCL的一部分,而是与其相关联的内容。此外,在微软(尽管可能性很小)使用完全相同的名称实现这些类/方法时,也不会产生冲突。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接