Я использую приложение Microsoft Speech Server, основанное на Windows Workflow Foundation. Приложение управляет другими вспомогательными приложениями - пользователи вызывают, а менеджер загружает сборку, содержащую правильное приложение, и вызывает рабочий процесс.
Проблема, с которой я сталкиваюсь, заключается в том, что речевая подача или мне нравится блокировать сборку в памяти, не давая мне перезаписать dll. Это затрудняет отладку приложения, но также будет совершенно неприемлемо после развертывания приложения в рабочей среде.
Невозможно вручную выгрузить одну конкретную сборку - сборки выгружаются только при выгрузке домена родительского приложения.
Поэтому я пытаюсь использовать удаленное взаимодействие .net для создания нового домена приложения, загрузки сборки в этот домен, создания объекта рабочего процесса через прокси-сервер, а затем я хочу передать этот прокси-сервер.
Это код типа, который я пытаюсь создать. Именно в сборке я пытаюсь загрузить:
public class typeContainer : MarshalByRefObject
{
public static Type workflowType = typeof(mainWorkflow);
}
А вот код в менеджере:
AppDomain newDomain = AppDomain.CreateDomain("newdomain");
System.Runtime.Remoting.ObjectHandle oh = newDomain.CreateInstanceFrom(
@"FullPathToAssembly",
"namespace.typeContainer");
object unwrapped = oh.Unwrap();
Итак, вопрос в том, как я могу получить доступ к typeContainer.workflowType в менеджере? oh.Unwrap () возвращает тип _TransparentProxy.