|
2,codeProvider.GenerateCodeFromStatement方法 |
为指定的代码文档对象模型 (CodeDOM) 语句生成代码,并使用指定的选项将代码发送到指定的文本编写器。 通俗理解:将CodeAssignStatement输出为代码字符串 |
测试各种CodeStatement (语句) |
可以用这些语句模型一一地对应生成的对应语言的代码 |
a, CodeAssignStatement表示简单的赋值语句。 |
CodeAssignStatement ret = new CodeAssignStatement(); CodeVariableReferenceExpression left = new CodeVariableReferenceExpression(); left.VariableName = "i"; ret.Left = left; ret.Right = new CodePrimitiveExpression(33); codeProvider.GenerateCodeFromStatement(ret, tw, options); 输出的代码字符串为:i = 33; |
把右边换成变量的应用CodeVariableReferenceExpression |
CodeAssignStatement ret = new CodeAssignStatement(); CodeVariableReferenceExpression left = new CodeVariableReferenceExpression(); left.VariableName = "i"; ret.Left = left; CodeVariableReferenceExpression right = new CodeVariableReferenceExpression(); right.VariableName = "j"; ret.Right = right; codeProvider.GenerateCodeFromStatement(ret, tw, options); 输出的代码字符串为:i = j; |
把右边换成函数调用的返回结果CodeMethodInvokeExpression |
CodeAssignStatement ret = new CodeAssignStatement(); CodeVariableReferenceExpression left = new CodeVariableReferenceExpression(); left.VariableName = "i"; ret.Left = left; CodeMethodInvokeExpression right = new CodeMethodInvokeExpression(); right.Method = new CodeMethodReferenceExpression(); right.Method.TargetObject = new CodeVariableReferenceExpression("myField"); right.Method.MethodName = "TestMethod"; right.Parameters.Add(new CodePrimitiveExpression(true)); ret.Right = right; codeProvider.GenerateCodeFromStatement(ret, tw, options); 输出的代码字符串为:i = myField.TestMethod(true); |
b, 表示向事件附加事件处理程序委托的语句。 |
CodeAttachEventStatement ret = new CodeAttachEventStatement(); CodeEventReferenceExpression myEvent = new CodeEventReferenceExpression(); myEvent.TargetObject = new CodeThisReferenceExpression(); myEvent.EventName = "Click"; ret.Event = myEvent; CodeDelegateCreateExpression myDelegate = new CodeDelegateCreateExpression(); myDelegate.TargetObject = new CodeThisReferenceExpression(); myDelegate.MethodName = "On_Click"; myDelegate.DelegateType = new CodeTypeReference(typeof(EventHandler<EventArgs>)); ret.Listener = myDelegate; codeProvider.GenerateCodeFromStatement(ret, tw, options); 输出的代码字符串为:this.Click += new System.EventHandler<System.EventArgs>(this.On_Click); |
c, CodeCommentStatement表示由单个注释构成的语句。 |
CodeCommentStatement ret = new CodeComm |
微软CodeDom模型学习笔记(二)
最新推荐文章于 2024-09-07 17:02:25 发布
本文是关于微软CodeDom模型的学习笔记,主要探讨了CodeDom如何作为跨语言代码生成和编译的工具,以及在异常处理、数据库操作和测试工作中的应用。
摘要由CSDN通过智能技术生成