我在MyProject中有一个内部类。我的UnitTestProject中有另一个内部类。我想从UnitTestProject.internalClass继承MyProject.internalClass。但我无法继承。这是我的代码。
namespace MyProject.Data
{
internal class BaseClass
{
}
}
namespace MyUnitTests.Data
{
internal class TestClass: BaseClass
{
}
}
我在UnitTests项目中添加了引用MyProject.dll。但我还是不能继承。我不确定我做的方式是对还是错。请给我任何建议?
答案 0 :(得分:0)
内部意味着该类仅对程序集本身可见。
将BaseClass
更改为public
。
由于我们似乎在这里处理测试,因此请查看InternalsVisibleTo以保持基类内部,但允许显式(例如测试)程序集看到它。
答案 1 :(得分:0)
见InternalsVisibleToAttribute
。您应该将此属性放入AssemblyInfo.cs中以用于MyProject
程序集:
[assembly:InternalsVisibleTo("MyUnitTests")]
答案 2 :(得分:0)
内部类仅在定义它们的程序集中可见。因此,默认情况下无法从另一个程序集访问一个程序集中的内部类。
为此,您可以使用InternalsVisibleToAttribute。