在两个名称空间中使用相同的类名 - 优先考虑其中一个名称空间

时间:2014-08-15 13:24:41

标签: c# asp.net class namespaces

在不同的命名空间中有两个具有相同名称的类。

其中一个是.aspx页面,一个是代表我数据库中的条目的业务类(我正在使用CSLA)。

我在aspx页面的命名空间中工作,通常我不需要调用页面类,但经常需要调用业务类。

我一直在寻找解决方案。我发现的是在我的页面类的命名空间块中编写一个更高优先级的使用部分。这里的问题是我写的命名空间仍然具有最高优先级,而页面类是这个命名空间。

有没有办法优先考虑另一个名称空间,而不是我当前正在编写的名称空间?

2 个答案:

答案 0 :(得分:1)

  

有没有办法优先考虑另一个名称空间,而不是我当前正在编写的名称空间?

不直接。如果发生冲突,我不希望编译器“选择”命名空间,我希望它能让我修复冲突,这就是它的作用。

我要么显式地声明另一个名称空间以避免冲突或使用别名。

从ViewModels映射到Domain对象时,我看到了很多:

namespace Domain
{
    public class User
    {
    }
}

namespace ViewModel
{
    public class User
    {
        // another class with different properties
    }
}

控制器:

using Domain;
using ViewModel;

public class UserController
{
    public Save(Model.User user)   
    {
        Domain.User dUser = Mapper.Map(user);
        repository.Save(dUser);
    }
}

using DUser = Domain.User;
using VMUser = ViewModel.User;

public class UserController
{
    public Save(VMUser user)   
    {
        DUser dUser = Mapper.Map(user);
        repository.Save(dUser);
    }
}

答案 1 :(得分:0)

是的,请使用:

using newClassName = System.Text;