【问题标题】:Namespaces inside a global namespace C#全局命名空间 C# 中的命名空间
【发布时间】:2012-07-05 07:32:58
【问题描述】:

所以我创建了一个.dll,其中包含一些我希望在另一个项目中使用的方法。一切顺利。我目前在.dll 中有.cs 文件,如下所示:

GeneralClass.cs
NetworkingClass.cs
TextProcessingClass.cs

每一个里面都是这样的:

namespace General // The name of each .cs file without 'Class'
{
    ...
}

所以我将拥有这些命名空间:

  • General

  • Networking

  • TextProcessing

我可以通过以下方式在另一个项目中访问它们:

using General;
using Networking;
...

这一切都很好,但我想知道是否有办法做到这一点:

using MyDll.General;
using MyDll.Networking;
...

所以一切都将在MyDll 下,就像System 及其所有子命名空间一样。

如果你能帮到我,请在这里发帖。

【问题讨论】:

  • 你可以像namespace MyDll.General这样声明你的命名空间,然后你就可以使用你提到的方式了。

标签: c# .net namespaces


【解决方案1】:

定义命名空间为:

namespace MyDll.General

【讨论】:

    【解决方案2】:

    如果您希望命名空间不同,为什么不这样做呢?匹配文件名的命名空间没有限制(与其他一些语言不同)。

    namespace MyDll.General 
    { 
        ... 
    } 
    

    【讨论】:

    • 谢谢,我从没想过那样做。我想我必须将 GeneralNetworking 命名空间放在 MyDll 命名空间内。我会尽可能接受你的回答。
    【解决方案3】:

    像改变你的命名空间

    namespace MyDll.General
    {
        // define classes here
    }
    
    namespace MyDll.Networking
    {
        // define classes here
    }
    
    namespace MyDll.TextProcessing
    {
        // define classes here
    }
    

    【讨论】:

      【解决方案4】:

      在你的 dll 项目中,只需更改

      namespace General {}
      

      namespace MyDll.General {}
      

      然后重新构建它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-06
        • 1970-01-01
        • 1970-01-01
        • 2013-11-22
        • 1970-01-01
        • 2018-07-24
        • 2012-03-13
        相关资源
        最近更新 更多