Ich versuche, ein paar Module über das Einhängen in die AppDomain.AssemblyResolve
und AppDomain.ReflectionOnlyAssemblyResolve
Ereignisse zu laden. Während ich den ersteren zur Arbeit brachte, scheiterte ich kläglich an letzterem. Ich habe mein Problem eingekocht zu diesem kleinen Programm:Warum wird ReflectionOnlyAssemblyResolve nicht ausgeführt, wenn Assembly.ReflectionOnlyLoad versucht wird?
public static class AssemblyLoader
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve +=
ReflectionOnlyAssemblyResolve;
// fails with FileNotFoundException
Assembly.ReflectionOnlyLoad("Foo");
}
public static Assembly ReflectionOnlyAssemblyResolve(object sender,
ResolveEventArgs args)
{
Trace.TraceInformation(
"Failed resolving Assembly {0} for reflection", args.Name);
return null;
}
}
Das Ausführen dieses Programms mit einem FileNotFoundException
schlägt fehl, wenn auf Assembly.ReflectionOnlyLoad
versucht, aber es stellt nicht den ReflectionOnlyAssemblyResolve Handler. Ich bin dort ziemlich ratlos.
Hat jemand eine Idee, was die Ursache dafür sein könnte und wie man dies zur Arbeit bringt?
Danke!
Gibt es eine Möglichkeit, einen fehlgeschlagenen Versuch, eine Baugruppe nur mit Reflektion zu laden, abzufangen? – derabbink
@derabbink Das ist eine separate Frage, würde ich mir vorstellen. – casperOne