Re: [Mono-dev] mono CodeDom problem
Thanks Ivan much more better info, work perfect...one question, is posible to get the XML representation of some code generated by CodeDom? thanks. Mauricio Ivan N. Zlatev wrote: > [EMAIL PROTECTED] wrote: > >> thanks Ivan, bad source info then, the link that you send me is broken, >> but of course I'm going to search for better info on the net.. >> >> > > The link opens fine here. Try this one - > http://msdn2.microsoft.com/en-us/library/650ax5cx.aspx > > >> thanks again. >> >> Mauricio >> >> Ivan N. Zlatev wrote: >> >> >>> [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.Priva
Re: [Mono-dev] mono CodeDom problem
[EMAIL PROTECTED] wrote: > thanks Ivan, bad source info then, the link that you send me is broken, > but of course I'm going to search for better info on the net.. > The link opens fine here. Try this one - http://msdn2.microsoft.com/en-us/library/650ax5cx.aspx > thanks again. > > Mauricio > > Ivan N. Zlatev wrote: > >> [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 >>> construct
Re: [Mono-dev] mono CodeDom problem
thanks Ivan, bad source info then, the link that you send me is broken, but of course I'm going to search for better info on the net.. thanks again. Mauricio Ivan N. Zlatev wrote: > [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 CodeMember
Re: [Mono-dev] mono CodeDom problem
[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
[Mono-dev] mono CodeDom problem
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? 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 = va