В комментарии вы пояснили, чего хотите достичь: вы хотите вызвать событие, чтобы ваша сборка была загружена. Вы не можете сделать это так, как вы думаете, это работает. Чтобы загрузить свою сборку вручную, просто сделайте это, нет необходимости в событии. Событие вызывается, когда среда выполнения пытается разрешить указанную сборку, но не может ее найти.
отаю с AssemblyResolve специально. Вот мой код, а затем мой вопрос:
var a = AppDomain.CurrentDomain;
a.AssemblyResolve += new ResolveEventHandler(HandleIt);
Private Assembly HandleIt(object sender, ResolveEventArgs args){
//Does stuff, returns an assembly
}
Поэтому я добавляю HandleIt к своему событию AssemblyResolve. Как я могу добавить это к тому событию и передать аргумент с этим как:
a.AssemblyResolve += new ResolveEventHandler(HandleIt(AnArgument));
Это отталкивает меня, так как HandleIt принимает аргументы, но ни один явно не передается, когда он добавляется в событие AssemblyResolve. Я ожидал бы что-то вроде:
a.AssemblyResolve += new ResolveEventHandler(HandleIt(aSender,someArgs));
Так что да, я просто хочу иметь возможность отправить еще один аргумент в мою функцию HandleIt при добавлении его в мое событие AssemblyResolve.
Надеюсь, это имеет смысл, спасибо.
Приложение:
if(aBool){
a.AssemblyResolve += new ResolveEventHandler(HandleA);
}
else{
a.AssemblyResolve += new ResolveEventHandler(HandleB);
}
HandleA(object sender, ResolveEventArgs args){
Handle(true);
}
HandleB(object sender, ResolveEventArgs args){
Handle(false);
}
Handle(bool isA){
}
vs-
if(aBool){
a.AssemblyResolve += (object s, ResolveEventArgs a) => Handle(s,a,true);
}
else{
a.AssemblyResolve += (object s, ResolveEventArgs a) => Handle(s,a,false);
}
Handle(object sender, ResolveEventArgs args, bool isA){
}