Пример #1
0
        private void language_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            CodeProviderInfo info = (CodeProviderInfo)language.SelectedItem;

            CodeDomProvider provider = codeproviderFactory.GetProvider(info);

            StringWriter         writer = new StringWriter();
            CodeGeneratorOptions opts   = new CodeGeneratorOptions();

            opts.BracingStyle             = "C";
            opts.BlankLinesBetweenMembers = true;

            provider.CreateGenerator().GenerateCodeFromType(typeDecl, writer, opts);

            richTextBox1.Text = writer.GetStringBuilder().ToString();
        }
Пример #2
0
        public void Generate(Project project)
        {
            LogStart();

            CodeDomProvider provider = _providerFactory.GetProvider(project.CodeInfo);

            Log(String.Format("Generating project in {0}", project.CodeInfo.Label));

            CodeNamespace ns = new CodeNamespace(project.Namespace);

            ns.Comments.Add(new CodeCommentStatement(""));
            ns.Comments.Add(new CodeCommentStatement("Generated by ActiveRecord Generator"));
            ns.Comments.Add(new CodeCommentStatement("\r\n"));

            ns.Imports.Add(new CodeNamespaceImport("Castle.ActiveRecord"));

            foreach (IActiveRecordDescriptor desc in project.Descriptors)
            {
                if (desc.ClassName == null || desc.ClassName.Equals("ActiveRecordBase"))
                {
                    continue;
                }

                CodeTypeDeclaration decl = _domGenerator.Generate(desc);

                ns.Types.Add(decl);

                WriteClassFile(project, desc.ClassName, ns, provider);

                ns.Types.Remove(decl);
            }

            Log("Done!");

            LogEnd();
        }