public void InitApp(string[] args) { ProcessArgs(args); ConfigXmlDoc.Load(ConfigFile); GetInputInfo(); CodeProviders[InPrvId] = new CodeProviderInfo(ConfigXmlDoc, InPrvId); }
private CompilerResults GetCompilerResults() { CodeProviderInfo ProviderInfo = (CodeProviderInfo)CodeProviders[InPrvId]; CodeDomProvider provider = (CodeDomProvider)ProviderInfo.CodeProvider; // Obtain an ICodeCompiler from a CodeDomProvider class. //ICodeCompiler compiler = provider.CreateCompiler(); //ICodeGenerator g = provider.CreateGenerator(); // Configure a CompilerParameters that links System.dll and // produces a file name based on the specified source file name. string[] Dlls = { "System.dll", "CSymphonyLib.dll" }; //CompilerParameters cp = new CompilerParameters(Dlls, .DllFile, false); CompilerParameters cp = new CompilerParameters(Dlls); cp.GenerateExecutable = false; cp.GenerateInMemory = true; // Invoke compilation. return(provider.CompileAssemblyFromFile(cp, InputFile)); //+ "." + ProviderInfo.FileExtension); //CompilerResults cr = compiler.CompileAssemblyFromSource(cp, reCode.Text); }
public void AddProvider(string PrvId) { // if the provider does not exist in the hashtable then add the provider //if (CodeProviders[PrvId] == null) //{ CodeProviders[PrvId] = new CodeProviderInfo(ConfigXmlDoc, PrvId); //} }
private void GenerateCode(CodeCompileUnit CompileUnit) { // CreateProvidersOut XmlNodeList list = ConfigXmlDoc.SelectNodes("/csy/codeGen/*"); //Console.WriteLine(list); // Config each of the datastores foreach (XmlElement e in list) { string PrvId = e.Attributes["prvId"].InnerText; AddProvider(PrvId); CodeProviderInfo PrvInfo = (CodeProviderInfo)CodeProviders[PrvId]; CodeDomProvider CodePrv = PrvInfo.CodeProvider; // Obtain an ICodeGenerator from a CodeDomProvider class. //ICodeGenerator gen = CodePrv.CreateGenerator(); // Create a TextWriter to a StreamWriter to an output file. string OutPath = InnerText(e.Attributes, "path", false) + "/" + Path.GetFileNameWithoutExtension(InputFile) + "." + PrvInfo.FileExtension; IndentedTextWriter tw = new IndentedTextWriter(new StreamWriter(OutPath, false), " "); // Generate source code using the code generator. CodeGeneratorOptions opts = new CodeGeneratorOptions(); //opts.BlankLinesBetweenMembers = true; opts.BracingStyle = "C"; try { CodePrv.GenerateCodeFromCompileUnit(CompileUnit, tw, opts); } catch (SystemException ex) { Wait(" ERROR : " + "\n" + ex.Message + "\n"); } finally { tw.Close(); } } }