Может кто-нибудь объяснить мне, почему я не могу выдать исключение из события загрузки AppDomain.Assembly? Например:
class Program
{
static Program()
{
AppDomain.CurrentDomain.UnhandledException += (s, a) =>
{
Console.WriteLine("Caught exception!");
};
AppDomain.CurrentDomain.AssemblyLoad += (s, a) =>
{
Console.WriteLine(string.Format("Assembly {0} loaded", a.LoadedAssembly.FullName));
throw new Exception();
Console.WriteLine("Should never get here...");
};
}
static void Main(string[] args)
{
Console.WriteLine(new ClassLibrary1.Class1().TestString());
Console.WriteLine();
Console.WriteLine("Done...");
Console.ReadLine();
}
}
Когда я выполняю это, вывод выглядит следующим образом:
Assembly ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null loaded
TestString
Done...
Может кто-нибудь объяснить мне это поведение? Спасибо.
РЕДАКТИРОВАТЬ Чтобы уточнить пару вещей:
Событие загрузки сборки работает нормально, когда я ожидаю, что оно будет запущено. Но мое исключение никогда не будет брошено
Это дистиллированный пример, взятый из более крупного приложения. Я хочу проверить сборку после ее загрузки, и если мне что-то не нравится в ней, я хочу быстро потерпеть неудачу ... Но мое исключение "не происходит"