为什么程序集命

时间:2010-09-06 17:43:13

标签: c# asp.net vb.net

我在Web Project中调用我的业务层项目。我向Web添加了refress业务层项目。当我在BL项目中调用class时,我需要写两次这个命名空间。我不知道为什么会这样。

MyCompanyName.HRHead.DataLayer.MyCompanyName.HRHead.DataLayer.User

我想打电话

MyCompanyName.HRHead.DataLayer.User

在我的BL项目中,我定义了所有类名称空间为MyCompanyName.HRHead.DataLayer

请帮帮我。

提前致谢

4 个答案:

答案 0 :(得分:6)

在VB中,项目具有默认命名空间 - 这将作为前缀应用于您在源中编写的任何内容。这是,就像C#一样,项目的默认命名空间只会在添加新项目时影响源代码模板。因此,如果您的项目默认名称空间为Foo.Bar声明了Foo.Bar.Baz的名称空间,则完整名称空间将为Foo.Bar.Foo.Bar.Baz

我建议您更改项目设置或只删除源代码中的公共前缀。

答案 1 :(得分:2)

我假设你正在使用的标签中有某些东西。您正在其他项目中使用VB.NET编写的程序集。 VB.NET项目属性包含一个属性“default namespace”,可以使用您在类顶部显式定义的命名空间进行设置。删除项目属性中的默认命名空间(取消选中)并重新编译它。

答案 2 :(得分:0)

如果您使用的是c#,则可以使用以下代码段:

using MyCompanyName.HRHead.DataLayer.User = MyCompanyName.HRHead.DataLayer.MyCompanyName.HRHead.DataLayer.User;

因此,您可以使用命名空间MyCompanyName.HRHead.DataLayer.User而不是MyCompanyName.HRHead.DataLayer.MyCompanyName.HRHead.DataLayer.User

此致 亲

答案 3 :(得分:0)

如果你从C#中的全局命名空间开始,你也可以访问命名空间,如下所示: global::MyCompanyName.HRHead.DataLayer.User