1. A method for providing version resiliency between a host application that executes as unmanaged code and custom code runtime and custom code that execute as managed code, the host application exposing an application-level object and a document-level object, by a method comprising: providing for the custom code runtime a wrapper for the document-level object exposed by the host application so that custom code can access the document-level object through the wrapper; and providing for the custom code runtime a mechanism for the custom code to access the application-level object directly without using a wrapper of the custom code runtime, so that when a new version of the host application is released that exposes new functionality through the application-level object, a developer can release custom code that uses the new functionality with a version of the custom code runtime that was already released at the time the new version of the host application was released.