各位高手大家下午好!
新手我有问题需要大家帮忙!
这段时间在网上看了一篇名为“浅谈三层结构与原理”的文章
于是也学着做一个三层的小项目,但是我迷惑啦!
在它的文章里有个例子 TraceLWord7 我看了下,好想是(不知道是不?)有一个名为TraceLWord7的企业级项目模块,在这个模块下有很多项目包含(WEB 用户界面)WEBUI,一些规则和类库。我看他们的命名空间都是
namespace TraceLWrod7.项目名  我也试着新建了这样的一个企业级项目模块Test 在这个模块下添加了一个新建项目(WEB 用户界面)WEBUI(包含一个defautl.aspx) 和一个类库DbClass(包含一个Db.cx 这个类文件).怎么它们的命名空间是 namespace WEBUI; 和 namespace DbClass  而不是 namespace Test.WEBUI 和 namespace Test.DbClass 啊!TraceLWord7 里是这样的。我想在defautl.aspx.cx 里调用Db 这个类 于是就引用命名空间
using DbClass;  发现这个命名空间引用无效,找不到Db这个类  
如 (new Db()).dbconn(); 没有用。怎么弄才可以呀!困惑呀!我把他们的命名空间手动的都改为:Test.WEBUI 和 Test.DbClass 发现还是引用不了命名空间。在一个文件里 使用 using Test.项目名 发现根本找不到别的命名空间,除了自己。哎!

解决方案 »

  1.   

    web项目中,引用其他的项目.
      

  2.   

    需要把WEBUI,DbClass两个空间下的类编译为dll,
    然后再添加引用
      

  3.   

    编译生成为dll文件
    然后添加引用
      

  4.   

    using DbClass;  发现这个命名空间引用无效,找不到Db这个类  
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    类不是引用的啊,引用的应该是命名空间using Test;如果你的类没有在命名空间里的话那么在别的页就这样引用 DbClass db=DbClass();
      

  5.   

    这个我好像试过,好像也找不到想要的那个类啊 但我用 (new D    的时候它不会出现Db()啊 (new Db()).  时 也不会出现 (new Db()).dbconn();
      

  6.   

    snyl(练习、练习、再练习) 
     
     using DbClass;  发现这个命名空间引用无效,找不到Db这个类  
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    类不是引用的啊,引用的应该是命名空间using Test;如果你的类没有在命名空间里的话那么在别的页就这样引用 DbClass db=DbClass();我引用的不是类,是命名空间 DbClass 是项目名 Db 是个类 它的命名空间是 DbClass
      

  7.   

    如果你引用了工程.
    应该是可以的.
    using 名称空间;
      

  8.   

    慕白兄 是不是在一个项目里引用另一个项目,那么在这个项目下的文件就不需要引用另一个项目的 命名空间啦?
    =============>
    不是.
    using 还是要写的,如果不写,
    声明的时候就要写全.
      

  9.   

    App_Code 你的类文件有放在这个文件夹中吗?
      

  10.   

    snyl(练习、练习、再练习)
    App_Code 你的类文件有放在这个文件夹中吗?我用的是2003 的 没有这个文件夹.呵!
      

  11.   

    先在项目中引用其dll,再在项目中using 命名空间
      

  12.   

    并不单单是using就完事,应该在项目管理器中添加对其他项目的引用。
      

  13.   

    不要可以去使用太多名字空间。
    一般先把CS文件放到App_Code里。  目录式管理
    比如
    App_Code下有个目录Admin
     那么Admin下的类就用  MainNamespace.Admin
     这样便于管理和调试。