public ITemplateParser GetParser(eParserType typ) { if (typ == eParserType.File) { return(new InFileParser()); } else { return(new InMemoryParser()); } }
/// <summary> /// Retreive a given parser as an IAssemblyParser interface /// </summary> /// <param name="type"></param> /// <returns></returns> static public IAssemblyParser GetParser(eParserType type) { if (type == eParserType.CecilParser) { return(new CecilAssemblyParser()); } else { return(new NetAssemblyParser()); } }
/// <summary> /// génère la chaine qui contient le code de création du ClassWriter. /// </summary> private string GenerateCodeWriter(TemplateItem ti) { string mainCode = string.Empty; eParserType typ = eParserType.None; #if DEBUG typ = eParserType.File; #else typ = eParserType.Memory; #endif ITemplateParser Parser = new ParserFactory().GetParser(eParserType.File); bool bResult = Parser.GenerateCode(ti.TemplateFile); if (bResult) //le parsing est ok { string classCode = new ResourceHelper().ReadResource("ReflectionStudio.Core", "ReflectionStudio.Core.Generator.ClassWriter.ClassWriterExtended.txt"); //on remplace ClassWriter<#=DOM=#> pour avoir une classe du type "ClassWriter + BO + Base" classCode = classCode.Replace("<#DOM#>", ti.OutputFilePrefix + ti.OutputFileSufix); //on remplace avec le code pour la fonction generate() classCode = classCode.Replace("<#CODE#>", Parser.GetCode()); #if DEBUG StreamWriter sw = File.CreateText(AppDomain.CurrentDomain.BaseDirectory + "\\ClassWriterResult.txt"); sw.Write(classCode); sw.Close(); #endif return(classCode); } else { return(null); } }
static public AssemblyBackgroundWorkerParser GetBackgroundWorkerParser(eParserType type) { return(new AssemblyBackgroundWorkerParser(type)); }
public AssemblyBackgroundWorkerParser(eParserType typ) { _ParserType = typ; RunWorkerCompleted += new RunWorkerCompletedEventHandler(ParsingWorkCompleted); }