It appears that in C# 4.0, variance specifiers are only applicable to interface types.
So let's say I have ViewModel / EditModel classes and a simple hierarchy of models.
class MyEditModel<T> where T : Base { ... }
class Derived1 : Base { ... }
class Derived2 : Base { ... }
I have a partial view that accepts a MyEditModel of any type (so long as it's derived from Base) and another one that only accepts instances of Derived1. Now how do I render both on the same page?
The partial view that accepts any MyEditModel will be shared between the editor for Derived1 and the editor for Derived2.