如何在C#中使用来自另一个命名空间的对象/类(visual studio 2013)

时间:2014-03-18 06:55:54

标签: c# namespaces

我的解决方案中有一些不同的命名空间,我想在另一个名为DAL的命名空间中使用来自namespece BL_Backend的名为“Doctor”的对象。我尝试添加一个Refference到DAL(BL_Backend的参考),然后添加“使用BL_Backend;”但它不会起作用。仍然像Doctor这样的类不会在命名空间DAL中显示为已知类。

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

例如, 当我从DAL调用医生的构造函数时,它说这个构造函数不存在,但是当我在命名空间bl_backend处写完相同的命令时它工作正常。

非常感谢!

3 个答案:

答案 0 :(得分:0)

我认为DoctorBL_Backend程序集中被声明为internal类。注意 - 如果班级没有public access modifier,则默认情况下会为internal

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

    }
}

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

答案 1 :(得分:0)

如果您要使用Doctor中程序集BL_Backend中的课程DAL,则必须在DAL中将引用添加到BL_Backend而不是vise反之亦然。

答案 2 :(得分:0)

默认情况下,没有修饰符的类是内部的,因此请确保修饰符是公共的。 作为第二个选项,请注意构建顺序 - 它不再是VS12 +中的问题,但在其他版本中它是。