Moviendo objetos a través de AppDomains en .NET

¿Hay alguna manera de compartir o mover objetos .NET de manera eficiente a través de AppDomains? Me doy cuenta de que la intención de AppDomains es proporcionar aislamiento; sin embargo, tengo un caso en el que necesito mover un conjunto relativamente grande y en caché de objetos inmutables que son costosos de calcular y crear. Por el momento, tengo un enfoque de serialización que funciona, pero es bastante lento.