繁体   English   中英

隐藏dll中的基类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM