コード例 #1
0
ファイル: Program.cs プロジェクト: JorgeSForest/absbuilder
        static int Main(string[] args)
        {
            AppDomain.CurrentDomain.AssemblyResolve += (sender, eventArgs) =>
            {
                var    assemblyName = new AssemblyName(eventArgs.Name).Name;
                string resourceName = assemblyName + ".dll";
                using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
                {
                    if (stream == null)
                    {
                        return(null);
                    }
                    var assemblyData = new byte[stream.Length];
                    stream.Read(assemblyData, 0, assemblyData.Length);
                    return(Assembly.Load(assemblyData));
                }
            };

            //LibZResolver.Startup(() =>
            {
                //
                string runningPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                string directiveXml;
                string contentRootPath = null;

                if (args != null && args.Length > 0)
                {
                    directiveXml    = args[0];
                    contentRootPath = args[1];
                }
                else
                {
                    var dirInfo = new DirectoryInfo(runningPath);
                    dirInfo = dirInfo.Parent.Parent.Parent.Parent;
                    //@TODO: This should be changed into a loop that many contents can be run
                    directiveXml = Path.Combine(dirInfo.FullName,
                                                "AbstractionContent", "absbuilder", "In", "Content_v1_0", "AbstractionBuilderContent_v1_0.xml");
                }
                Console.WriteLine("Using {0} as command file.", directiveXml);

                AbstractionEnvironment env = new AbstractionEnvironment(runningPath, directiveXml, contentRootPath);

                Runner runner = new Runner(env);
                runner.Execution();
            }
            //);
            return(0);
        }
コード例 #2
0
 // --- this is the method that you invoke ------------
 // Passes also AbstractionEnvironment as a first argument to caller
 public static Object InvokeMethod(string AssemblyName,
                                   string ClassName, string MethodName, AbstractionEnvironment env, Object[] args)
 {
     Object[] allArgs = new Object[] { env, args };
     return(InvokeMethod(AssemblyName, ClassName, MethodName, allArgs));
 }
コード例 #3
0
 public Runner(AbstractionEnvironment env)
 {
     _env = env;
 }