public static string codeStreams_CreateInAppDomain(this Saved_MethodStream savedMethodStream)
        {
            //var script = @"C:\O2\_XRules_Local\Ast_Test.cs";
            var script = "Saved_MethodStream.cs".local();

            "Creating new AppDomain".info();
            var appDomainName = 4.randomString();
            var o2AppDomain   = new O2AppDomainFactory(appDomainName);

            o2AppDomain.appDomain().load("FluentSharp.CoreLib.dll");
            var o2Proxy    = (O2Proxy)(o2AppDomain.appDomain().getProxyObject("O2Proxy"));
            var parameters = new object[]
            {
                savedMethodStream.Serialized_Saved_MethodStream_FileCache
//						sourceFolder,
//						resultsFolder,
//						methodFilter,
//						useCachedData,
//						references,
//						numberOfItemsToProcess
            };

            var result = (string)o2Proxy.staticInvocation("O2_External_SharpDevelop", "FastCompiler_ExtensionMethods", "executeFirstMethod", new object[] { script, parameters });

            "Result: {0}".info(result);
            o2AppDomain.sleep(2000);
            o2AppDomain.appDomain().unLoadAppDomain();
            "AppDomain execution completed, Runing GCCollect".info();
            PublicDI.config.gcCollect();
            "GCCollect completed, returning result data: {0}".info(result);
            return(result);
        }
Exemplo n.º 2
0
        public static O2AppDomainFactory        createAppDomain(this string appDomainName)
        {
            var o2AppDomainFactory = new O2AppDomainFactory(appDomainName);

            o2AppDomainFactory.appDomain().loadMainO2Dlls();
            return(o2AppDomainFactory);
        }
Exemplo n.º 3
0
        public static string executeEngineOnSeparateAppDomain(string sourceFolder, string resultsFolder, string methodFilter, bool useCachedData, List <string> references, int numberOfItemsToProcess)
        {
            //var script = @"C:\O2\_XRules_Local\Ast_Test.cs";
            var script = "MethodMappings_Engine.cs".local();

            "Creating new AppDomain".info();
            var appDomainName = 4.randomString();
            var o2AppDomain   = new O2AppDomainFactory(appDomainName);

            //o2AppDomain.load("O2_XRules_Database");
            //o2AppDomain.load("O2_Kernel");
            //o2AppDomain.load("O2_DotNetWrappers");

            o2AppDomain.appDomain().load("FluentSharp.CoreLib",
                                         "FluentSharp.WinForms",
                                         "FluentSharp.REPL",
                                         "FluentSharp.SharpDevelopEditor.dll");

            var o2Proxy    = (O2Proxy)(o2AppDomain.appDomain().getProxyObject("O2Proxy"));
            var parameters = new object[]
            {
                sourceFolder,
                resultsFolder,
                methodFilter,
                useCachedData,
                references,
                numberOfItemsToProcess
            };

            var result = (string)o2Proxy.staticInvocation("O2_External_SharpDevelop", "FastCompiler_ExtensionMethods", "executeFirstMethod", new object[] { script, parameters });

            o2AppDomain.appDomain().unLoadAppDomain();
            "AppDomain execution completed, Runing GCCollect".info();
            PublicDI.config.gcCollect();
            "GCCollect completed, returning result data: {0}".info(result);
            return(result);
        }