公共类扩展了内部类

GET*_*Tah 1 c#

我有一个内部类A,做了很多的东西,我有一组其他类的B,D,E从类继承A.当然这不会起作用,因为编译器会抱怨公共类无法扩展内部类(请参阅解释).

我不想A公开,因为我不希望我的用户继承它.我希望他们只使用B,D,E.

我知道我可以使用Intellisense隐藏类,[EditorBrowsable(EditorBrowsableState.Never)]但用户仍然可以使用反射访问它:(

有没有办法实现这个目标?

O. *_*per 5

假设A是在组装一个,和B,DE是在装配BDE,你可以声明的InternalsVisibleTo属性一个使BDE朋友组装.与此类似,B,DE将能够看到A.

但是,您不能继承A,因为超类不能具有低于子类的可见性.您可以通过在将所有构造函数设置为内部时声明A 公共来解决此问题.这样,只有具有内部 访问权限的代码才能从中派生出来.AA