¿Puede alguien explicarme por qué no puedo lanzar una excepción desde dentro del evento AppDomain.Assembly load? Por ejemplo:Lanzar una excepción desde el evento AppDomain.AssemblyLoad
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();
}
}
Cuando ejecuto esto, la salida es la siguiente:
Assembly ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null loaded
TestString
Done...
Puede alguien explicar este comportamiento conmigo? Gracias.
EDITAR Para aclarar un par de cosas:
El evento de carga de montaje funciona muy bien, cuando yo esperaba que se ejecute. Pero mi excepción nunca se arroja
Este es un ejemplo destilado tomado de una aplicación más grande. Quiero inspeccionar el montaje después de que se carga y si no me gusta algo al respecto, quiero fallar rápido ... Pero mi excepción no 'da la casualidad'
¿Está ejecutando en una máquina de 64 bits? Tenía una muy similar ar problema. Ver: http://stackoverflow.com/questions/4125876/what-happens-when-you-attempt-to-access-a-winforms-treeview-by-keyword-and-that-k/4125994#4125994 – Crisfole
@Cpfohl : Gracias, estoy en x64 pero mi objetivo de plataforma ya es x86 ... – TheNextman
En realidad, eso tiene sentido de todos modos, ya que el error es para la carga de formularios, no para la carga general. – Crisfole