3 using System.Reflection;
7 const int expected_count = 2;
8 static int event_handler_count;
10 public static int Main ()
12 AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler (MyResolveEventHandler);
14 event_handler_count = 0;
16 Assembly a = Assembly.LoadFile (Path.Combine (Directory.GetCurrentDirectory (), "assemblyresolve_asm.dll"));
17 foreach (Type t in a.GetTypes ()) {
18 Console.WriteLine ("pp: " + t + " " + t.BaseType);
20 } catch (Exception ex) {
21 Console.WriteLine ($"Caught exception: {ex}");
25 if (event_handler_count != expected_count) {
26 Console.WriteLine ($"Expected MyResolveEventHandler to be called {expected_count} but was called {event_handler_count}");
33 static Assembly MyResolveEventHandler (object sender, ResolveEventArgs args)
35 event_handler_count++;
36 Console.WriteLine ("Resolve assembly: {0}", args.Name);
37 if (args.Name == "Test, Version=0.0.0.0, Culture=neutral" || args.Name == "Test, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")
38 return Assembly.LoadFile (Path.Combine (Directory.GetCurrentDirectory (), "assemblyresolve_deps", "Test.dll"));
39 if (args.Name == "TestBase, Version=0.0.0.0, Culture=neutral" || args.Name == "TestBase, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")
40 return Assembly.LoadFile (Path.Combine (Directory.GetCurrentDirectory (), "assemblyresolve_deps", "TestBase.dll"));