我想知道是否有办法限制谁可以从一个班级继承.
internal:不允许在程序集外部继承类sealed:class不能继承是否有一个关键字或方法只允许某些类(仅从它自己的命名空间中说)来继承该类?
另外,我不希望这个特殊类是通用的.我关心的不是安全,而是一般的设计.
我想要的例子:
Eri*_*ert 18
有没有办法只允许某些类继承该类?
是.如果继承代码部分受信任,那么您可以在基类上放置继承需求,如果不满足需求条件,运行时将不允许继承类加载:
https://msdn.microsoft.com/en-us/library/x4yx82e6(v=vs.100).aspx
当然,完全信任意味着完全信任.完全受信任的代码可以继承任何想要的东西.
我怀疑你正试图施加你真正不应该强加的限制.你能说出你为什么要做这件事吗?可能有更好的方法来做你想要的.
更新:
我试图在同一个程序集中限制我的类中的继承.
那么你可能应该首先说出来.
使类的所有构造函数都在内部.为了从类继承,它必须具有可访问的构造函数.如果将所有构造函数设置为内部,则只有该程序集中的类可以从基类继承.
据我所知,使用internal是控制谁可以继承一个类的唯一方法.如果继承者必须位于不同的程序集中,则可以让其他程序集中的类使用InternalsVisibleTo属性查看程序集的内部(必须对目标程序集进行签名,以使其与签名程序集一起使用).
| 归档时间: |
|
| 查看次数: |
3658 次 |
| 最近记录: |