我使用的是一个片状的第三方库,它会抛出我无法捕获的内部线程上的异常。我试图将库沙箱放入一个单独的AppDomain中,这样异常就不会使我的应用程序失效,因此我可以实现重试逻辑。
这是我到目前为止所做的,但它似乎在默认的AppDomain上执行。异常使应用程序崩溃。
var ad = AppDomain.CreateDomain("Sandbox");
ad.UnhandledException += (o, e) =>
{
Console.WriteLine("Who Cares");
};
dynamic lib = ad.CreateInstance("TestLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", "TestLibrary.TestLibrary").Unwrap();
lib.DoWork();
答案 0 :(得分:3)
尝试这种方法:
ngClass
因为当您解开该类型时,它也会在主应用程序域中加载。使用这种方法都将保留在其他AppDomain中。接下来,您可以回到主应用领域,获得一些简单的可编组结果。