When Microsoft Violated Liskov Substitution Principle in .NET