Пример #1
0
 private void GenerateHelper()
 {
     using (GenParamsForm gpf = new GenParamsForm())
     {
         gpf.Namespace = _rootCategory.Name;
         if (gpf.ShowDialog(this) == DialogResult.OK)
         {
             CodeCompileUnit ccu = HelperGenerator.Generate(_rootCategory,
                                                            gpf.Namespace, gpf.IsInternal);
             CSharpCodeProvider   cscp = new CSharpCodeProvider();
             CodeGeneratorOptions cgo  = new CodeGeneratorOptions();
             cgo.BracingStyle = "C";
             using (StreamWriter sw = new StreamWriter(
                        Path.Combine(_directory, _rootCategory.TreeName + ".cs")))
                 cscp.GenerateCodeFromCompileUnit(ccu, sw, cgo);
             if (gpf.ShowResult)
             {
                 using (ShowResultForm srf = new ShowResultForm())
                     using (StringWriter strW = new StringWriter())
                     {
                         cscp.GenerateCodeFromCompileUnit(ccu, strW, cgo);
                         srf.Result = strW.ToString();
                         srf.ShowDialog(this);
                     }
             }
         }
     }
 }
Пример #2
0
        private void LoadTemplates()
        {
            _adGenerator = new AdaptorGenerator();
            _adGenerator.LoadTemplateFromFile(_tmpdPath + "adaptor.tmpd");

            _helpGenerator = new HelperGenerator();
            _helpGenerator.LoadTemplateFromFile(_tmpdPath + "helper.tmpd");
        }
Пример #3
0
        //private void LoadDelegateRegister(string key, object type)
        //{
        //    if (!_delegateRegDic.ContainsKey(key))
        //        _delegateRegDic.Add(key, type);
        //}

        //private void LoadDelegateConvertor(Type type)
        //{
        //    if (!_delegateSet.Contains(type))
        //        _delegateSet.Add(type);
        //}

        //private void LoadAdaptor(Type type)
        //{
        //    if (!_adaptorSet.Contains(type))
        //        _adaptorSet.Add(type);
        //}


        //private void CreateILRuntimeHelper()
        //{
        //    Print($"==================Begin create helper:=====================");

        //    _helpGenerator.LoadData(new Tuple<HashSet<Type>, HashSet<Type>, Dictionary<string, object>>(_adaptorSet, _delegateSet, _delegateRegDic));
        //    var helperStr = _helpGenerator.Generate();

        //    using (var fs2 = File.Create(_outputPath + "helper.cs"))
        //    {
        //        var sw = new StreamWriter(fs2);
        //        sw.Write(helperStr);
        //        sw.Flush();
        //    }

        //    Print($"==============End create helper:===================");
        //}

        //private void CreateAdaptor(Type type)
        //{
        //    if (type.IsInterface)
        //        return;

        //    Print($"================begin create adaptor:{type.Name}=======================");

        //    var adaptorName = type.Name + "Adaptor";

        //    using (var fs = File.Create(_outputPath + adaptorName + ".cs"))
        //    {

        //        _adGenerator.LoadData(type);
        //        var classbody = _adGenerator.Generate();

        //        var sw = new StreamWriter(fs);
        //        sw.Write(classbody);
        //        sw.Flush();
        //    }

        //    Print($"================end create adaptor:{type.Name}=======================");

        //}

        private void LoadTemplates()
        {
            var tmpdPath = Application.StartupPath + "/Template/";

            _adGenerator = new AdaptorGenerator();
            _adGenerator.LoadTemplateFromFile(tmpdPath + "adaptor.tmpd");

            _helpGenerator = new HelperGenerator();
            _helpGenerator.LoadTemplateFromFile(tmpdPath + "helper.tmpd");
        }
    /// <summary>
    /// 加载所有模板
    /// </summary>
    private void LoadTemplates()
    {
        var tmpdPath = Application.dataPath + "/ThirdParty/ILRuntime/Adapters/Editor/Adapter/Template";

        _interfaceAdapterGenerator = new InterfaceAdapterGenerator();
        _interfaceAdapterGenerator.LoadTemplateFromFile(tmpdPath + "adaptor_single_interface.tmpd");

        _adGenerator = new AdaptorGenerator();
        _adGenerator.LoadTemplateFromFile(tmpdPath + "adaptor.tmpd");

        _helpGenerator = new HelperGenerator();
        _helpGenerator.LoadTemplateFromFile(tmpdPath + "helper.tmpd");
    }
Пример #5
0
        private static void DumpHelpers(DbTable[] tables)
        {
            var buffer = new StringBuilder();

            foreach (var table in tables)
            {
                if (table.IsReadOnly)
                {
                    var code = HelperGenerator.GenerateCode(table) + Environment.NewLine;
                    buffer.AppendLine(code);
                }
            }
            File.WriteAllText(@"C:\temp\help.cs", buffer.ToString());
        }
Пример #6
0
        private static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Application.EnableVisualStyles();
                using (var mf = new MainForm())
                {
                    var cont = new RootAppContainer(mf);
                    cont.Add(mf);
                    Application.Run(mf);
                }
            }
            else
            {
                if (args.Length != 4)
                {
                    Console.WriteLine(msgBadArgCount);
                    return;
                }
                if (!File.Exists(args[0]))
                {
                    Console.WriteLine(msgResourceFileNotFound);
                    return;
                }
                if (!Directory.Exists(args[3]))
                {
                    Console.WriteLine(msgOutputDirNotFound);
                    return;
                }

                Console.Write("Generate resource helper ... ");
                CultureInfo[] loadedCultures;
                DateTime      lmt;
                var           rc = Loader.Load(args[0], out loadedCultures,
                                               out lmt);
                var outFile = Path.Combine(args[3], rc.TreeName + ".cs");
                Console.WriteLine(outFile);
                if (File.Exists(outFile) && lmt <= File.GetLastWriteTime(outFile))
                {
                    Console.WriteLine(msgFileUpToDate);
                    return;
                }
                if (File.Exists(outFile) && (File.GetAttributes(outFile) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
                {
                    Console.WriteLine(msgReadOnlyError);
                    return;
                }

                bool isInternal;
                if (args[2] == "public")
                {
                    isInternal = false;
                }
                else if (args[2] == "internal")
                {
                    isInternal = true;
                }
                else
                {
                    throw new ArgumentException("Invalid class modifier argument");
                }

                var ccu = HelperGenerator.Generate(rc,
                                                   args[1], isInternal);
                var cscp = new CSharpCodeProvider();
                var cgo  = new CodeGeneratorOptions {
                    BracingStyle = "C"
                };
                using (var sw = new StreamWriter(
                           Path.Combine(args[3], rc.TreeName + ".cs")))
                    cscp.GenerateCodeFromCompileUnit(ccu, sw, cgo);
            }
        }