I have been asked on several occasions to articulate type versioning and isolation (and ensuring types do not leak) semantics.  I worked with the CLR Add-In team to define and document these semantics relative to the System.AddIn model but you can certainly apply this knowledge to your .Net development.  The document is written as a list of constraints allowed in a System.AddIn Contract.  Here is the link to the Restrictions on Contracts.