Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / tests / assemblyresolve_event3.cs
1 using System;
2 using System.IO;
3 using System.Reflection;
4
5 class App
6 {
7         const int expected_count = 2;
8         static int event_handler_count;
9         
10         public static int Main ()
11         {
12                 AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler (MyResolveEventHandler);
13                 
14                 event_handler_count = 0;
15                 try {
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);
19                         }
20                 } catch (Exception ex) {
21                         Console.WriteLine ($"Caught exception: {ex}");
22                         return 1;
23                 }
24                 
25                 if (event_handler_count != expected_count) {
26                         Console.WriteLine ($"Expected MyResolveEventHandler to be called {expected_count} but was called {event_handler_count}");
27                         return 2;
28                 }
29                                 
30                 return 0;
31         }
32         
33         static Assembly MyResolveEventHandler (object sender, ResolveEventArgs args)
34         {
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"));
41                 return null;
42         }
43 }