Took a bit longer than I anticipated, since people found some really hard bugs with regards to the generics support. I now know a lot more than I ever wanted to about generics, and I considered myself an expert before-hand.
Anyway, the new bits have:
- Improved support for wacky generics scenarios. Thanks to James and Thierry.
- Better support for types having non inheritable attributes that cannot be easily replicated. Thanks to Aaron.
- Better support for types implementing interfaces by using a base class that is located in another assembly.* Thanks to Aaron.
- Included XML Documentation files.
- All merged assemblies are not marked internal, to save your from collisions if you are using the Castle bits yourself.
The CallOriginalMethod() was deprecated, you are now encouraged to use CallOriginalMethod(OriginalMethodOptions.NoExpectation) or CallOriginalMethod(OriginalMethodOptions.CreateExpectation) instead. The reasoning behind the change is that currently CallOriginalMethod looks like it create an expectation, but it doesn't really does it, s it is better to be explicit about the whole thing. Thanks for Enrst for pointing it out to me.
As usual, the binaries and source are here.
* If you understood what that meant...