我的解决方案中有一些不同的命名空间,我想在另一个名为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处写完相同的命令时它工作正常。
非常感谢!
答案 0 :(得分:0)
我认为Doctor
在BL_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 +中的问题,但在其他版本中它是。