This and this bugs are really pissing me off. Both those bugs are related to the same source, and one of them was originally a Rhino Mocks issue. They both stems from the CLR runtime bugs. Basically, trying to inherit from a generic interface with generic method parameters that has constraints causes the runtime to puke with a TypeLoadException.
I am not one to cry that select() is broken, but in this case, it most certainly is. It is verified using both the C# compiler and Reflection.Emit, so it is definitely a runtime bug.
The really annoying parts that they were acknowledged and verified as bugs by Microsoft, and then closed By Design. No communication whatsoever about the reasoning for that, just the customary "By Design" response that I have seen all too often in the past.
I personally have had to track down the root cause when it was first submitted to me as a Rhino Mocks bug. If this is a By Design bug, then either the design is broken, or we deserve a lot more information about this, because no way your turn this, it should be legal to do this.
As you can probably tell, I am very angry about this, not the least because I spent many hours with it before admitting that it was a runtime bug that I had no way around. I am pretty sure that some of the bugs in connect are resolved to their reporters satisfactions, I just have to meet such a thing.