I have an application where I needed to refactor to a base class using the
template method pattern in order to avoid duplication of code between two
objects that needed to fulfill the same obligation in a different manner.
The classes are publicly visible because the application will be used by
other applications. What I would like to do is prevent objects that exist
outside the assembly from inheriting the base class in order to avoid having
functionality "injected" into the application. The deployment environment
does not offer GAC as an option and the code will be deployed to ASP.Net
applications. Any ideas?