Почему ReflectionOnlyAssemblyResolve не выполняется при попытке к блоку. ReflectionOnlyLoad?

По-видимому, слово было по крайней мере один словарь .

Но кажется странным, что они включили бы это, а не собачьи .

8
задан starblue 25 April 2009 в 09:00
поделиться

2 ответа

Казалось бы, что событие ReflectionOnlyAssemblyResolve только используется для разрешения зависимостей, не блоков верхнего уровня, как обозначено здесь:

http://codeidol.com/csharp/net-framework/Assemblies,-Loading,-and-Deployment/Assembly-Loading/

И здесь:

http://blogs.msdn.com/junfeng/archive/2004/08/24/219691.aspx

8
ответ дан 5 December 2019 в 20:20
поделиться

Подробно останавливаясь на ответе casperOne.

Если Вы хотите прервать прямые события Assembly Resolve, необходимо сцепиться в AppDomain. Событие AssemblyResolve. Это - глобальный рычаг, хотя, таким образом, он один не будет соответствовать Вашему сценарию. Однако, если Ваше приложение является отдельным, распараллелил Вас, мог краткосрочное сцепление для прерывания определенных событий твердости.

static void LoadWithIntercept(string assemblyName) {
  var domain = AppDomain.CurrentDomain;
  domain.AssemblyResolve += MyInterceptMethod;
  try {
    Assembly.ReflectionOnlyLoad(assemblyName);
  } finally {
    domain.AssemblyResolve -= MyInterceptMethod;
  }
}

private static Assembly MyInterceptMethod(object sender, ResolveEventArgs e) {
 // do custom code here 
}
0
ответ дан 5 December 2019 в 20:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: