I have an internal class A that does a lot of stuff and I have a set of other classes B, D, E that inherit from class A. Of course this won't work as the compiler will complain about a public class not being able to extend an internal one (see this for an explanation).
I don't want A to be public as I don't want my users to inherit from it. I want them to only use B, D, E.
I know I can hide the class from Intellisense using [EditorBrowsable(EditorBrowsableState.Never)] but the users can still access it using reflection :(
Is there a way I can achieve this?