我有一个BaseClass
,它由一个程序集中的大约20多个类继承。此基类的属性由其他一些程序集(朋友程序集)使用。我已将属性声明为internal
,以便其他任何程序集都不会看到或使用它们。
现在,有没有办法将BaseClass
本身隐藏在除朋友程序集之外的其他程序集中?或许更好的机制或设计构建?
我无法制作BaseClass
internal
,因为继承它的类是public
。
这就是BaseClass
目前的样子。
[assembly: InternalsVisibleTo("MyApp.FriendAssembly1")]
[assembly: InternalsVisibleTo("MyApp.FriendAssembly2")]
namespace MyApp.Input
{
/// <summary>
/// Note: The members of this class are visible only to certain friend assemblies. The normal consumers of this assembly can simply ignore this class.
/// </summary>
public class BaseClass
{
internal bool Property1 { get; set; }
internal bool Property2 { get; set; }
}
}
答案 0 :(得分:0)
你不能。继承树中的每个类必须至少具有与派生类相同的可见性。
我想知道为什么这对你很重要。如果只是因为您不希望其他人继承它,请创建一个内部构造函数。