[EMAIL PROTECTED] wrote: > Hi Guys: > > I have this code from a example of a simple code generator with CodeDom > (from here http://www.15seconds.com/issue/020917.htm , I list the code > at end of the message), but with mono I only get the using and namespace > declarations...I see in the status page of mono that the codedom is > allmost complete, do you have some examples? >
I didn't bother to go through the article, but the code sample is wrong and broken in many aspects. But to answer your question - there is nothing wrong with Mono's CodeDom C# code generator. It won't generate anything more than the namespace essentially because the author never adds the class to the namespace (e.g via: cnsCodeDom.Types.Add (ctd); ). Based on the code sample I wouldn't recommend this article. A good starting point is http://msdn2.microsoft.com/en-us/library/aa720100(VS.71).aspx Regard, Ivan Zlatev > thanks > > Mauricio > > using System; > using System.CodeDom; > using System.CodeDom.Compiler; > using System.Reflection; > using System.IO; > using Microsoft.CSharp; > using Microsoft.VisualBasic; > > namespace CodeDomPartOne > { > /// > /// Summary description for Briefcase. > /// > public class Briefcase > { > //Member Variables private string m_strFileName; > private string m_Suffix = ".cs"; > > public Briefcase(string strFileName) > { > m_strFileName = strFileName; } public void > CreateCodeDomBriefcase() > { > //Initialize CodeDom Variables > //para windows > //Stream s = File.Open("c:\\" + m_strFileName + m_Suffix, > FileMode.Create); > //para linux > Stream s = File.Open("" + m_strFileName + m_Suffix, FileMode.Create); > > StreamWriter sw = new StreamWriter(s); > CSharpCodeProvider cscProvider = new CSharpCodeProvider(); > ICodeGenerator cscg = cscProvider.CreateGenerator(sw); > CodeGeneratorOptions cop = new CodeGeneratorOptions(); > //Create Class Using Statements > CodeSnippetCompileUnit csu1 = new CodeSnippetCompileUnit("using > System"); > CodeSnippetCompileUnit csu2 = new CodeSnippetCompileUnit("using > System.IO"); cscg.GenerateCodeFromCompileUnit(csu1, sw, cop); > cscg.GenerateCodeFromCompileUnit(csu2, sw, cop); > sw.WriteLine(); > //Create Class Namespaces > CodeNamespace cnsCodeDom = new CodeNamespace("CodeDom"); > //Create Class Declaration > CodeTypeDeclaration ctd = new CodeTypeDeclaration(); > ctd.IsClass = true; ctd.Name = "Briefcase"; > ctd.TypeAttributes = TypeAttributes.Public; > //Create Class Member Fields > sw.WriteLine(); CodeMemberField cmfBriefcaseName = new > CodeMemberField("string","m_BriefcaseName"); > cmfBriefcaseName.Attributes = > MemberAttributes.Private; > ctd.Members.Add(cmfBriefcaseName); > CodeMemberField cmfBriefcaseTitle = new CodeMemberField("string", > "m_BriefcaseTitle"); > cmfBriefcaseTitle.Attributes = MemberAttributes.Private; > ctd.Members.Add(cmfBriefcaseTitle); > CodeMemberField cmfBriefcaseID = new CodeMemberField("int", > "m_cmfBriefcaseID"); > cmfBriefcaseID.Attributes = MemberAttributes.Private; > ctd.Members.Add(cmfBriefcaseID); > > CodeMemberField cmfBriefcaseSectionID = new CodeMemberField("int", > "m_BriefcaseSectionID"); > cmfBriefcaseSectionID.Attributes = MemberAttributes.Private; > ctd.Members.Add(cmfBriefcaseSectionID); > > CodeMemberField cmfBriefcaseFolderID = new CodeMemberField("int", > "m_BriefcaseFolderID"); > cmfBriefcaseFolderID.Attributes = MemberAttributes.Private; > ctd.Members.Add(cmfBriefcaseFolderID); > > CodeMemberField cmfBriefcaseItemID = new CodeMemberField("int", > "m_BriefcaseItemID"); > cmfBriefcaseItemID.Attributes = MemberAttributes.Private; > ctd.Members.Add(cmfBriefcaseItemID); > //Create Class Constructor CodeConstructor ccon = > new CodeConstructor(); > ccon.Attributes = MemberAttributes.Public; > ccon.Statements.Add(new CodeSnippetStatement("//")); > ccon.Statements.Add(new CodeSnippetStatement("// TODO: Add > constructor logic here")); > ccon.Statements.Add(new CodeSnippetStatement("//")); > ctd.Members.Add(ccon); > //Create Class BriefcaseName Property > CodeMemberProperty mpBriefcaseName = new CodeMemberProperty(); > mpBriefcaseName.Attributes = MemberAttributes.Private; > mpBriefcaseName.Type = new CodeTypeReference("string"); > mpBriefcaseName.Name = "BriefcaseName"; > mpBriefcaseName.HasGet = true; > mpBriefcaseName.GetStatements.Add(new CodeSnippetExpression("return > m_BriefcaseName")); > mpBriefcaseName.HasSet = true; > mpBriefcaseName.SetStatements.Add(new > CodeSnippetExpression("m_BriefcaseName = value")); > ctd.Members.Add(mpBriefcaseName); //Create > Class BriefcaseTitle Property > CodeMemberProperty mpBriefcaseTitle = new CodeMemberProperty(); > mpBriefcaseTitle.Attributes = MemberAttributes.Private; > mpBriefcaseTitle.Type = new CodeTypeReference("string"); > mpBriefcaseTitle.Name = "BriefcaseTitle"; > mpBriefcaseTitle.HasGet = true; > mpBriefcaseTitle.GetStatements.Add(new > CodeSnippetExpression("return m_BriefcaseTitle")); > mpBriefcaseTitle.HasSet = true; > mpBriefcaseTitle.SetStatements.Add(new > CodeSnippetExpression("m_BriefcaseTitle = value")); > ctd.Members.Add(mpBriefcaseTitle); > > //Create Class BriefcaseID Property > CodeMemberProperty mpBriefcaseID = new CodeMemberProperty(); > mpBriefcaseID.Attributes = MemberAttributes.Private; > mpBriefcaseID.Type = new CodeTypeReference("int"); > mpBriefcaseID.Name = "BriefcaseID"; mpBriefcaseID.HasGet > = true; > mpBriefcaseID.GetStatements.Add(new > CodeSnippetExpression("m_BriefcaseID")); > mpBriefcaseID.HasSet = true; > mpBriefcaseID.SetStatements.Add(new > CodeSnippetExpression("m_BriefcaseID = value")); > ctd.Members.Add(mpBriefcaseID); > > //Create Class BriefcaseSection Property > CodeMemberProperty mpBriefcaseSection = new CodeMemberProperty(); > mpBriefcaseSection.Attributes = MemberAttributes.Private; > mpBriefcaseSection.Type = new CodeTypeReference("int"); > mpBriefcaseSection.Name = "BriefcaseSection"; > mpBriefcaseSection.HasGet = true; > mpBriefcaseSection.GetStatements.Add(new CodeSnippetExpression > ("return m_BriefcaseSectionID")); > mpBriefcaseSection.HasSet = true; > mpBriefcaseSection.SetStatements.Add(new CodeSnippetExpression > ("m_BriefcaseSectionID = value")); > ctd.Members.Add(mpBriefcaseSection); > > //Create Class BriefcaseFolder Property > CodeMemberProperty mpBriefcaseFolder = new CodeMemberProperty(); > mpBriefcaseFolder.Attributes = MemberAttributes.Private; > mpBriefcaseFolder.Type = new CodeTypeReference("int"); > mpBriefcaseFolder.Name = "BriefcaseFolder"; > mpBriefcaseFolder.HasGet = true; > mpBriefcaseFolder.GetStatements.Add(new > CodeSnippetExpression("return m_BriefcaseFlderID")); > mpBriefcaseFolder.HasSet = true; > mpBriefcaseFolder.SetStatements.Add(new > CodeSnippetExpression("m_BriefcaseFolderID = value")); > ctd.Members.Add(mpBriefcaseFolder); > > //Create Class BriefcaseItem Property > CodeMemberProperty mpBriefcaseItem = new CodeMemberProperty(); > mpBriefcaseItem.Attributes = MemberAttributes.Private; > mpBriefcaseItem.Type = new CodeTypeReference("string"); > mpBriefcaseItem.Name = "BriefcaseItem"; > mpBriefcaseItem.HasGet = true; > mpBriefcaseItem.GetStatements.Add(new CodeSnippetExpression("return > m_BriefcaseItemID")); > mpBriefcaseItem.HasSet = true; > mpBriefcaseItem.SetStatements.Add(new > CodeSnippetExpression("m_BriefcaseItemID = value")); > ctd.Members.Add(mpBriefcaseItem); > //Create Class GetBriefcaseName Method > CodeMemberMethod mtd1 = new CodeMemberMethod(); > mtd1.Name = "GetBriefcaseName"; > mtd1.ReturnType = new CodeTypeReference("String"); > mtd1.Attributes = MemberAttributes.Public; > mtd1.Statements.Add(new CodeSnippetStatement("return > BriefcaseName;")); > ctd.Members.Add(mtd1); > //Create Class GetBriefcaseTitle Method > CodeMemberMethod mtd2 = new CodeMemberMethod(); > mtd2.Name = "GetBriefcaseTitle"; > mtd2.ReturnType = new CodeTypeReference("String"); > mtd2.Attributes = MemberAttributes.Public; > mtd2.Statements.Add(new CodeSnippetStatement("return > BriefcaseTitle;")); > ctd.Members.Add(mtd2); > > //Create Class GetBriefcaseID Method > CodeMemberMethod mtd3 = new CodeMemberMethod(); > mtd3.Name = "GetBriefcaseID"; > mtd3.ReturnType = new CodeTypeReference("Int"); > mtd3.Attributes = MemberAttributes.Public; > mtd3.Statements.Add(new CodeSnippetStatement("return BriefcaseID;")); > ctd.Members.Add(mtd3); > > //Create Class GetBriefcaseSection Method > CodeMemberMethod mtd4 = new CodeMemberMethod(); > mtd4.Name = "GetBriefcaseSectionID"; > mtd4.ReturnType = new CodeTypeReference("Int"); > mtd4.Attributes = MemberAttributes.Public; > mtd4.Statements.Add(new CodeSnippetStatement("return > BriefcaseSectionID;")); > ctd.Members.Add(mtd4); > > //Create Class GetBriefcaseFolder Method > CodeMemberMethod mtd5 = new CodeMemberMethod(); > mtd5.Name = "GetBriefcaseFolderID"; > mtd5.ReturnType = new CodeTypeReference("Int"); > mtd5.Attributes = MemberAttributes.Public; > mtd5.Statements.Add(new CodeSnippetStatement("return > BriefcaseFolderID;")); > ctd.Members.Add(mtd5); > > //Create Class GetBriefcaseItem Method > CodeMemberMethod mtd6 = new CodeMemberMethod(); > mtd6.Name = "GetBriefcaseItemID"; mtd6.ReturnType = > new CodeTypeReference("Int"); > mtd6.Attributes = MemberAttributes.Public; > mtd6.Statements.Add(new CodeSnippetStatement("return > BriefcaseItemID;")); > ctd.Members.Add(mtd6); > //Generate Source Code File > cscg.GenerateCodeFromNamespace(cnsCodeDom, sw, cop); > > //Close StreamWriter > sw.Close(); > s.Close(); > } > } > } > > > > namespace CodeDomPartOne > { > class MainClass > { > public static void Main(string[] args) > { > Console.WriteLine("Hello CodeDom"); > Briefcase myBriefCase = new Briefcase("generado"); > myBriefCase.CreateCodeDomBriefcase(); > for(;;){} > } > } > } > > _______________________________________________ > Mono-devel-list mailing list > Mono-devel-list@lists.ximian.com > http://lists.ximian.com/mailman/listinfo/mono-devel-list _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list