Пример #1
0
 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());
     }
 }
Пример #3
0
        /// <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));
 }
Пример #5
0
        public AssemblyBackgroundWorkerParser(eParserType typ)
        {
            _ParserType = typ;

            RunWorkerCompleted += new RunWorkerCompletedEventHandler(ParsingWorkCompleted);
        }