The cause is the TypedFactoryFacility which uses implicit registration to replace all Func<T>'s with a CastleProxy that wraps the Func<T>, causing the code to try and resolve the types via the container instead of using the code provided in the Func<T>. The implicit registration looks for any publicly accessible Func<T>'s and wraps them.
Func<T> that instantiates a new instance of JsonReader (or JsonWriter, depending on the context). This behavior is being replaced by Castle's TypedFactoryFacility which is causing the failure as those are not types that Castle should be interfering with.TypedFactoryFacility? Or is it possible for you to disable it?Func<T> portion of the TypedFactoryFacility by registering it's initialization manually, but leaving out the implicit DelegateFactory stuff, e.g:Func<T>'s automatically injected into your application. Can you let me know if this will work for you?