作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序可以像这样创建一个新的应用程序域:
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()
方法?
最佳答案
使用AppDomain.DoCallBack()
在另一个 AppDomain
上调用方法。
我不确定一旦在调用 AppDomain
时抛出未处理的异常是否会起作用。但是,您可以试一试。
关于c# - 向原始应用程序域发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518027/
我是一名优秀的程序员,十分优秀!