我在Web Project中调用我的业务层项目。我向Web添加了refress业务层项目。当我在BL项目中调用class时,我需要写两次这个命名空间。我不知道为什么会这样。
MyCompanyName.HRHead.DataLayer.MyCompanyName.HRHead.DataLayer.User
我想打电话
MyCompanyName.HRHead.DataLayer.User
在我的BL项目中,我定义了所有类名称空间为MyCompanyName.HRHead.DataLayer
请帮帮我。
提前致谢
答案 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