命名空间引用问题(急救)

时间:2023-02-09 21:13:02
各位高手大家下午好!
新手我有问题需要大家帮忙!
这段时间在网上看了一篇名为“浅谈三层结构与原理”的文章
于是也学着做一个三层的小项目,但是我迷惑啦!
在它的文章里有个例子 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.项目名 发现根本找不到别的命名空间,除了自己。哎!

19 个解决方案

#1


在创建项目的时候vs会自动创建命名空间的,如果自动创建的命名空间不合适,你可以手动修改和指定

#2


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

#3


慕白兄 是不是在一个项目的引用里添加引用--项目啊  
 
 
   

#4


对.

#5


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

#6


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

#7


using DbClass;  发现这个命名空间引用无效,找不到Db这个类  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类不是引用的啊,引用的应该是命名空间using Test;

如果你的类没有在命名空间里的话

那么在别的页就这样引用 DbClass db=DbClass();

#8


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

(new Db()).  时 也不会出现 (new Db()).dbconn();

#9


snyl(练习、练习、再练习) 
 
 using DbClass;  发现这个命名空间引用无效,找不到Db这个类  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类不是引用的啊,引用的应该是命名空间using Test;

如果你的类没有在命名空间里的话

那么在别的页就这样引用 DbClass db=DbClass();

我引用的不是类,是命名空间

 DbClass 是项目名 Db 是个类 它的命名空间是 DbClass

#10


如果你引用了工程.
应该是可以的.


using 名称空间;

#11


慕白兄 是不是在一个项目里引用另一个项目,那么在这个项目下的文件就不需要引用另一个项目的 命名空间啦?

#12


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

#13


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

#14


哦! 谢谢你!慕白兄  回家再试试! 呵!

#15


snyl(练习、练习、再练习)
App_Code 你的类文件有放在这个文件夹中吗?

我用的是2003 的 没有这个文件夹.呵!

#16


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

#17


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

#18


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

#19


我也碰到同样的问题 不知怎么解决
不知lz是否解决了 可以告知一下吗

#1


在创建项目的时候vs会自动创建命名空间的,如果自动创建的命名空间不合适,你可以手动修改和指定

#2


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

#3


慕白兄 是不是在一个项目的引用里添加引用--项目啊  
 
 
   

#4


对.

#5


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

#6


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

#7


using DbClass;  发现这个命名空间引用无效,找不到Db这个类  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类不是引用的啊,引用的应该是命名空间using Test;

如果你的类没有在命名空间里的话

那么在别的页就这样引用 DbClass db=DbClass();

#8


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

(new Db()).  时 也不会出现 (new Db()).dbconn();

#9


snyl(练习、练习、再练习) 
 
 using DbClass;  发现这个命名空间引用无效,找不到Db这个类  
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
类不是引用的啊,引用的应该是命名空间using Test;

如果你的类没有在命名空间里的话

那么在别的页就这样引用 DbClass db=DbClass();

我引用的不是类,是命名空间

 DbClass 是项目名 Db 是个类 它的命名空间是 DbClass

#10


如果你引用了工程.
应该是可以的.


using 名称空间;

#11


慕白兄 是不是在一个项目里引用另一个项目,那么在这个项目下的文件就不需要引用另一个项目的 命名空间啦?

#12


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

#13


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

#14


哦! 谢谢你!慕白兄  回家再试试! 呵!

#15


snyl(练习、练习、再练习)
App_Code 你的类文件有放在这个文件夹中吗?

我用的是2003 的 没有这个文件夹.呵!

#16


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

#17


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

#18


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

#19


我也碰到同样的问题 不知怎么解决
不知lz是否解决了 可以告知一下吗

#20