GetAssembly() public method

public GetAssembly ( ) : Assembly
return Assembly
Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            bool noexe = args.Length > 0 && args[0] == "/noexe";

            string exePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "out");

            Directory.CreateDirectory(exePath);

            foreach (Generator gen in examples)
            {
                string testName = GetTestName(gen);
                Console.WriteLine(">>> GEN {0}", testName);
                string      name = noexe ? testName : Path.Combine(exePath, testName + ".exe");
                AssemblyGen asm  = new AssemblyGen(name);
                gen(asm);
                if (!noexe)
                {
                    asm.Save();
                }
                Console.WriteLine("=== RUN {0}", testName);

                try
                {
                    if (noexe)
                    {
                        Type       entryType   = asm.GetAssembly().EntryPoint.DeclaringType;
                        MethodInfo entryMethod = entryType.GetMethod(asm.GetAssembly().EntryPoint.Name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
                        object[]   entryArgs   = null;
                        if (entryMethod.GetParameters().Length == 1)
                        {
                            entryArgs = new object[] { GetTestArguments(gen) };
                        }
                        entryMethod.Invoke(null, entryArgs);
                    }
                    else
                    {
                        AppDomain.CurrentDomain.ExecuteAssembly(name, null,
                                                                GetTestArguments(gen));
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("!!! UNHANDLED EXCEPTION");
                    Console.WriteLine(e);
                }
                Console.WriteLine("<<< END {0}", testName);
                Console.WriteLine();
            }

            // dynamic method examples
            DynamicMethodExamples();
        }
		static void Main(string[] args)
		{
			bool noexe = args.Length > 0 && args[0] == "/noexe";

			string exePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "out");
			Directory.CreateDirectory(exePath);

			foreach (Generator gen in examples)
			{
				string testName = GetTestName(gen);
				Console.WriteLine(">>> GEN {0}", testName);
				string name = noexe ? testName : Path.Combine(exePath, testName + ".exe");
				AssemblyGen asm = new AssemblyGen(name);
				gen(asm);
				if (!noexe)	asm.Save();
				Console.WriteLine("=== RUN {0}", testName);
                try
                {
					if (noexe)
					{
						Type entryType = asm.GetAssembly().EntryPoint.DeclaringType;
						MethodInfo entryMethod = entryType.GetMethod(asm.GetAssembly().EntryPoint.Name, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static);
						object[] entryArgs = null;
						if (entryMethod.GetParameters().Length == 1)
						{
							entryArgs = new object[] { GetTestArguments(gen) };
						}
						entryMethod.Invoke(null, entryArgs);
					}
					else
					{
						AppDomain.CurrentDomain.ExecuteAssembly(name, null,
							GetTestArguments(gen));
					}
				}
                catch (Exception e)
                {
                    Console.WriteLine("!!! UNHANDLED EXCEPTION");
                    Console.WriteLine(e);
                }
				Console.WriteLine("<<< END {0}", testName);
				Console.WriteLine();
			}

			// dynamic method examples
			DynamicMethodExamples();
		}