I have rewritten this article based on new information I’ve just learned. I should have looked at the design notes archive first!
Here’s a crazy-seeming but honest-to-goodness real customer scenario that got reported to me recently. There are three DLLs involved, Alpha.DLL, Bravo.DLL and Charlie.DLL. The classes in each are:
public class Alpha // In Alpha.DLL
{
public virtual void M()
{
Console.WriteLine("Alpha");
}
}
public class Bravo: Alpha // In Bravo.DLL
{
}
public clas...
(more)