[英]Hide a base class from a dll
我有一个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; }
}
}
你不能 继承树中的每个类都必须至少具有与派生类相同的可见性。
我想知道为什么这对您很重要。 如果仅仅是因为您不希望其他人能够继承它,请创建一个内部构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.