Estoy tratando de cargar algunos módulos mediante el enganche en los eventos AppDomain.AssemblyResolve
y AppDomain.ReflectionOnlyAssemblyResolve
. Mientras conseguí que el primero trabajara, fracasé miserablemente en este último. He hervido mi problema a este pequeño programa:¿Por qué ReflectionOnlyAssemblyResolve no se ejecuta al intentar Assembly.ReflectionOnlyLoad?
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;
}
}
La ejecución de este programa falla con un FileNotFoundException
cuando se trata de Assembly.ReflectionOnlyLoad
, pero no llama al manejador ReflectionOnlyAssemblyResolve. Estoy bastante perplejo allí.
¿Alguien tiene una idea de cuál podría ser la causa raíz de esto y cómo hacer que esto funcione?
Gracias!
¿Hay alguna manera de interceptar un intento fallido en el montaje de reflexión-solamente-cargando? – derabbink
@derabbink Esa es una pregunta aparte, me imagino. – casperOne