我如何使用对象/类从另一个命名空间在c# (visual studio 2013)

本文关键字:visual studio 2013 命名空间 另一个 何使用 对象 | 更新日期: 2023-09-27 17:50:40

我在我的解决方案中有几个不同的名称空间,我想在另一个名为DAL的名称空间中使用来自名称空间BL_Backend的名为"Doctor"的对象。我试过添加对DAL的引用(对BL_Backend的引用),然后添加"使用BL_Backend",但它不起作用。但是,像Doctor这样的类不会在命名空间DAL中显示为已知类。

namespace BL_Backend
{
…
namespace DAL
{
    …
    //Here create object as "Doctor" for BL_Backend class
}
}
例如,

当我从DAL调用医生的构造函数时,它说这个构造函数不存在,但当我在命名空间bl_backend中编写完全相同的命令时,它工作得很好。

谢谢!

我如何使用对象/类从另一个命名空间在c# (visual studio 2013)

我假设DoctorBL_Backend程序集中被声明为内部类。注意:如果类没有public访问修饰符,则默认为internal:

namespace BL_Backend
{
    class Doctor // this class is internal
    {
    }
}

内部类只在它们定义的程序集中可见(好吧,有一个属性InternalsVisibleTo,它允许其他程序集看到内部类,但是没有应用这个属性,类对其他程序集不可见)。

如果您想在DAL中使用程序集BL_Backend中的类Doctor,则必须将DAL中的引用添加到BL_Backend中,而不是相反。

没有修饰符的类默认情况下是内部的,所以要确保你的修饰符是public的。第二个选择是注意构建顺序——这在VS12+中不再是个问题,但在以后的版本中却是。