Czy ktoś może mi wyjaśnić, dlaczego nie mogę rzucić wyjątku z wnętrza zdarzenia AppDomain.Assembly? Na przykład:Wyrzucanie wyjątków z zdarzenia 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();
}
}
Kiedy wykonać to, wyjście jest w następujący sposób:
Assembly ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null loaded
TestString
Done...
Może ktoś wyjaśnić ten problem do mnie? Dziękuję Ci.
EDIT Aby wyjaśnić kilka rzeczy:
Impreza obciążenie montaż przebiega w porządku, kiedy spodziewać się go uruchomić. Ale mój wyjątek nigdy nie zostanie rzucony.
To jest destylowany przykład zaczerpnięty z większej aplikacji. Chcę sprawdzić zespół po jego załadowaniu, a jeśli nie podoba mi się coś o niej, chcę szybko uda ... Ale mój wyjątek nie „zdarzyć”
Czy używasz maszyny 64-bitowej? Miałem bardzo podobne ar problem. Zobacz: http://stackoverflow.com/questions/4125876/what-happens-when-you-attempt-to-access-a-informations-treeview-by-keyword-and-that-k/4125994#4125994 – Crisfole
@Cpfohl : Dzięki, jestem na x64, ale moim celem na platformie jest już x86 ... – TheNextman
Tak czy inaczej ma to sens, ponieważ błąd dotyczy ładowania formularzy, a nie ogólnego ładowania. – Crisfole