Much stuff is shared between ILEmitProxy and RemotingProxy. I would see stuff being extracted into a shared class.
- The Handlers Dictionary.
- Almost all of the Invoke method implementation
Same with InterfaceInterceptionStrategy and VirtualInterceptionStrategy, I would extract an ILEmitInterceptionStrategy base class
- BuildUp implementation
- Even Intercept* has common stuff
BTW, do you mind we propose refactorings?