Я пытаюсь создать объект в appdomain:
var type = typeof (CompiledTemplate);
var obj = (CompiledTemplate) domain.CreateInstanceAndUnwrap (
type.Assembly.FullName, type.FullName);
Однако я всегда получаю следующую ошибку:
Невозможно передать прозрачный прокси для ввода "Mono.TextTemplating.CompiledTemplate".
Я запускаю .NET 4.0, а не Mono, несмотря на то, что может предложить пространство имен:)
Насколько я знаю, эта ошибка возникает, когда .NET думает, что тип и сборка не совпадают точно в двух доменах. Однако при отладке полное имя и местоположение идентичны. Только свойство Assembly.Codebase отличается - в дочернем домене AppDomain по какой-либо причине его расширение в верхнем регистре до "DLL".
Я попытался добавить обработчик AssemblyResolve в AppDomain, который использует Assembly.LoadFrom для загрузки имени файла явно, но расширение CodeBase по-прежнему получает верхний регистр. Поскольку исходная сборка также была загружена Assembly.LoadFrom(через Mono.Addins), разница между значениями CodeBase кажется очень странной.
Любые предложения по устранению или устранению этой проблемы?