【问题标题】:Using Namespaces使用命名空间
【发布时间】:2011-05-07 21:45:14
【问题描述】:

我在 VS 中有一个“Web 项目”。 文件结构

- AdminCms
  - Sections
    - CmsAuthors
- App_Code
  - Business Logics
    - Common
       - BuilderStrings.cs
    - DataAccess
      -CmsModel.edmx

当我在 BIN 中构建项目 VS 时,创建一个 Cms.dll 文件。

在文件“BuilderStrings.cs”中我使用:

namespace Cms.App_Code.BusinessLogics.Common

使用文件夹“CmsAuthors”中的此代码

using Cms.App_Code.BusinessLogics.Common;

到目前为止一切正常。

现在根据我的理解,我应该能够根据需要命名命名空间:

namescape Wdg.Cms.Common

所以如果我使用:

using Wdg.Cms.Common;

脚本应该可以正常工作。 相反,我收到错误“缺少程序集参考”。

  • 怎么了?
  • namespae是一种路径如何检索Class?
  • 为什么我不能使用其他名称?

谢谢大家的帮助!

【问题讨论】:

  • 显然没有错误(但使用“namesCaPe”而不是namesPaCe,但我认为这只是一个错字)你确定错误来自那个命名空间吗?你能提供更多信息吗?
  • 错误是缺少程序集引用,是的,我认为是命名空间的用户,事实上,如果我使用自动名称版本,它就可以工作。如果我用我的自定义名称更改它不会?有任何想法吗?我可以在不更改文件结构的情况下更改命名空间的名称吗?我使用 VS 作为 WEB PROJECT..thanks

标签: c# asp.net namespaces


【解决方案1】:

您应该在整个解决方案中保持相同的命名空间。您已经在多个地方使用了 Cms.App_Code.BusinessLogics.Common,因此请继续在所有地方使用它。

您对 Wdg.Cms.Common 的使用可能是您的 Missing Assembly 错误的原因。

【讨论】:

  • 谢谢Lane,对不起,但我的问题是为什么我不能给我想要的名字scape??看起来更像是一个文件路径..谢谢你的时间
【解决方案2】:

命名空间应该使用约定来定义,根据微软“命名命名空间的一般规则是使用公司名称,后跟技术名称以及可选的功能和设计,如下所示:CompanyName.TechnologyName [.Feature][.Design] ”。 看看这里:http://msdn.microsoft.com/en-us/library/893ke618%28VS.71%29.aspx

http://msdn.microsoft.com/library/ms229002

http://10rem.net/articles/net-naming-conventions-and-programming-standards---best-practices

【讨论】:

    【解决方案3】:

    完全没问题。您是否保存重建您的项目?

    ** 我确实第一次收到错误,因为我没有将更改保存在 app_code 中。

    1. 这里没有错。
    2. 拥有命名空间的主要目的是避免类名冲突。例如,您在 App_Code/Admin 和 App_Code/Common 中有 StringBuilder.cs,您可以通过使用名称空间来区分它们:Wdg.Cms.Common.StringBuilderWdg.Cms.Admin.StringBuilder
    3. 您可以使用其他名称。

    【讨论】:

    • 嗨,Lee,我明白你的意思,我也是这么想的,但是当我更改命名空间的名称时,我收到了同样的错误。我所有的代码都被构建为 CMS.DLL .....因为这个原因,我不能在其他任何地方使用自定义命名空间 Wdg.Cms.Common ????现在谢谢!
    • HI lee,抱歉,您在 VS 中将其测试为 WEB PROJECT 或 WEB SITE 吗?谢谢
    • 我在 VS 中将其作为网站进行了测试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    相关资源
    最近更新 更多