Konieczne jest podłączenie zdarzenia AssemblyResolve, gdy DisallowApplicationBaseProbing = true

Muszę podłączyć zdarzenie AssemblyResolve na mojej utworzonej domenie AppDomain, gdy ustawiłem DisallowApplicationBaseProbing = true. Powodem, dla którego to robię, jest wymuszenie na środowisku wykonawczym wywołania zdarzenia AssemblyResolve, które musi rozwiązać zespół, zamiast najpierw sondować. W ten sposób inny programista nie może po prostu umieścić MyDllName.dll w katalogu ApplicationBase i przesłonić zespołu, który chciałem załadować w zdarzeniu AssemblyResolve.

Problem z tym polega na następującym ...

  class Program
  {
 static void Main()
 {
    AppDomainSetup ads = new AppDomainSetup();
    ads.DisallowApplicationBaseProbing = true;
    AppDomain appDomain = AppDomain.CreateDomain("SomeDomain", null, ads);
    appDomain.AssemblyResolve += OnAssemblyResolve;
    appDomain.DoCallBack(target);
 }

 static System.Reflection.Assembly OnAssemblyResolve(object sender, ResolveEventArgs args)
 {
    Console.WriteLine("Hello");
    return null;

 }

 private static void target()
 {
    Console.WriteLine(AppDomain.CurrentDomain);
 }
  }

Kod nigdy nie przechodzi poza linię + = OnAssemblyResolve.

Gdy kod próbuje wykonać, nowa domena aplikacji próbuje rozwiązać zespół, w którym wykonuję. Ponieważ DisallowApplicationBaseProbing = true, nie ma pojęcia, gdzie znaleźć to złożenie. Wygląda na to, że mam problem z kurczakiem i jajkiem. Musi rozwiązać moje złożenie, aby połączyć się z tłumaczeniem zespołu, ale potrzebuje rozwiązania resolvera do złożenia mojego zespołu.

Dziękujemy za wszelką pomoc.

-Mikrofon

questionAnswers(1)

yourAnswerToTheQuestion