1

A我有一个做很多事情的内部类,我还有一组其他类B,它们从DE继承A。当然这不会起作用,因为编译器会抱怨公共类无法扩展内部类(请参阅this以获得解释)。

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

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

有没有办法可以做到这一点?

4

1 回答 1

5

假设它A在程序集A中,并且BD并且E在程序集BDE中,您可以在A上声明InternalsVisibleTo属性以使BDE成为友元程序集。像这样,,,就能看到。BDEA

不过,您不能从 继承A,因为超类的可见性不能低于子类。您可以通过声明A public同时使其所有构造函数为internal来解决此问题。这样,只有具有内部 访问权限的代码A才能从A.

于 2012-06-25T14:12:50.140 回答