这几天看 《aps.net web 站点高级编程》,作者讲在实施一个网站的开发之前,要先设计好命名空间的结构。比如书中的例子的部分命名空间的层次结构是这样的。                                |-User
    |----Thehite--web--Controls-| 
Wrox|                           |-Server
    |               |-Fourums
    |----WebModules-|-Polis
                    |-Accounts  
我在.Net的开发环境当中怎么建立这些命名空间呢?这个例子是一个解决方案多个项目。
我先建立一个空的解决方案,然后添加项目。但是比如我建立一个项目web,它的默认命名空间就是web,
而我看《〈aps.net web 站点高级编程〉》的代码,她的默认命名空间是Wrox.WebModules.Web,它的所有应用项目也是Worx.WebModules.项目名称。而我怎么样也能在.net环境当中也建立这样一个默认的命名空间层次结构呢?也许没有说清楚。见谅,如果看过这本书的朋友,可能更好理解。希望得到大家的帮助。在线等。结帖给分。

解决方案 »

  1.   

    项目管理器,右键 - 属性 -通用属性 - 常规- 修改默认命名空间为你想要的 如 LaoDai.Net程序集名称为生成DLL的名称 如 改为 LaoDai.Net.Framework 则生成 DLL 文件 就为 LaoDai.Net.Framework.dll
      

  2.   

    每个类的声明都在一个命名空间中,比如
    namespace web
    {
        class abc{...}
    }
    你要想把abc放在其他命名空间中,比如Wrox.WebModules.Web,那么直接把web改过来就行了
    namespace Wrox.WebModules.Web
    {
        class abc{...}
    }
    项目的属性中有“默认的命名空间”一项设置,改成Worx.WebModules.项目名称,在项目中再创建新类就默认在这个命名空间下了
      

  3.   

    我建立了一个类库项目core,建立了一个web项目。Core的默认命名空间改成了Wrox.WebModules.core
    但是我在项目web里面添加引用的时候怎么不是Core,而不是Wrox.WebModules.Core呢?
    用using在程序里面引用的时候怎么没有这个命名空间呢?先谢谢大家的帮助!
      

  4.   

    说错了。
    但是我在项目web里面添加引用的时候怎么是Core,而不是Wrox.WebModules.Core呢?不要意思
      

  5.   

    添加应用的时候是显示的是dll文件的名称,不是命名空间
      

  6.   

    添加引用的时候系统默认的有system,system.data等我那个类库项目Core的输出文件就是Wrox.WebModules.Core.dll,但是我怎么看不到引用的全称呢?我想引用的时候把命名空间也显示出来,应该可以的吧。不知道怎么实现。
      

  7.   

    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using Wrox.WebModules.Accounts.Business;这个是例子的引用 (asp.net WEB 站点高级编程)我建立了两个项目,一个是类库项目Core,命名空间是Wrox.WebModules.Core,输出文件是Worx.WebModules.Cord.dll,但是我在Web项目里面怎么就不能这样来引用呢
    比如:using Wrox.WebModules.Core,在项目的添加引用里面也只是个Core.dll文件。
      

  8.   

    不可以,引用显示的是程序集的名称,要显示命名空间用using指令
      

  9.   

    谢谢fancyf(凡瑞)
    但是我在那个例子的代码上就看到了这样引用的。
    他在一个项目引用另外一个项目的DLL文件的时候,命名空间一起显示了。 系统引用system.data,不是和我说的一样吗?system 也是个命名空间吧。
      

  10.   

    程序集的名称我已经改为:Wrox.WebModules.Core 了。
    另外输出文件是Wrox.WebModules.Core.dll我在Web项目Bin里面可以引用Core.dll,但是不显示Wrox.WebModules.Core.dll
    但是在aspx文件后台代码里面不能 using Wrox.WebModules.Core
      

  11.   

    程序集的名称改了,生成的dll的名称就应该是Wrox.WebModules.Core.dll,你是不是没有重新编译啊?
      

  12.   

    你还没搞清命名空间和程序集的关系呢
    引用中的System.Data是一个文件名,全名是System.Data.dll,也是一个程序集,里面包括的不仅仅是System.Data这个命名空间,还有System命名空间、System.Data.SqlClient命名空间等等一个.dll文件中只有一个命名空间,且和文件名相同只是一个特例,而且命名空间没必要和文件名相同,也就是说你引用了一Wrox.WebModules.Core.dll里面完全可以不包括Wrox.WebModules.Core这个命名空间。引用中列出的只是程序集的名称,不能列出这个程序集中的命名空间
      

  13.   

    重新编译了。在Web项目aspx后台代码可以这样引用:using Wrox.WebModules.Core,但是在BIN里面添加引用还是Core.dll.fancyf(凡瑞) :不可以,引用显示的是程序集的名称,要显示命名空间用using指令不是不相信fancyf(凡瑞) ,因为我明明在书附带的代码里面看到可以添加带命名空间的DLL,但是显示情况又和fancyf(凡瑞) 说的一样!!
      

  14.   

    谢谢fancyf(凡瑞) 
    结帖。是不是能留个联系方法,以后向你请教?
      

  15.   

    fancyf(凡瑞)  说的没有错啊,是你理解错了如果你两个项目在一个解决方案下可以直接添加项目的引用就好了,编译后dll文件会自动复制到bin目录的