У меня есть приложение, которое создает новый домен приложения, например:
private static AppDomain domain = null;
private static void LoadAndLaunchAppDomain(string assemblyFile, string typeName)
{
AppDomainSetup setup = new AppDomainSetup()
{
ApplicationBase = AppDomain.CurrentDomain.BaseDirectory,
ShadowCopyFiles = "true"
};
domain = AppDomain.CreateDomain("ClientKernel", null, setup);
domain.UnhandledException += new UnhandledExceptionEventHandler(domain_UnhandledException);
ClientKernelLauncher launcher = (ClientKernelLauncher)domain.CreateInstanceFromAndUnwrap(assemblyFile, typeName);
launcher.Launch();
}
static void domain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
// handler
}
В какой-то момент выдается исключение, и поток достигает внутри HANDLER.То, что я на самом деле хочу, это воссоздать домен, когда это произойдет.Я заметил, что обработчик фактически работает в домене приложения «ClientKernel», а не в исходном домене, который его создал.
Как связаться с исходным доменом и попросить его снова вызвать LoadAndLaunchAppDomain()
метод?