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(); }
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(); }