codeDom命名空间的使用

 

CodeDOM 提供了表示许多常见的源代码元素类型的类型。您可以设计一个生成源代码模型的程序,使用 CodeDOM 元素构成一个对象图。可以使用受支持的编程语言的 CodeDOM 代码生成器,将该对象图呈现为源代码。CodeDOM 也可以用于将源代码编译成二进制程序集。

CodeDOM 的一些一般用途包括:

  • 模板化代码生成:生成 ASP.NET、XML Web 服务客户端代理、代码向导、设计器或其他代码发出机制的代码。

  • 动态编译:支持以一种或多种语言进行代码编译。

代码:

 

using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Text;
using Microsoft.CSharp;
using System.IO;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            create();
        }

        private static void create()
        {
            CodeDomProvider provider = new Microsoft.CSharp.CSharpCodeProvider();

            CodeCompileUnit unit = new CodeCompileUnit();

            CodeNamespace nameSpace = new CodeNamespace("samples");

            unit.Namespaces.Add(nameSpace);

            nameSpace.Imports.Add(new CodeNamespaceImport("System"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Xml"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Collections.Generic"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Text"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Workflow.Activities"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Workflow.Runtime"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Workflow.ComponentModel"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.ComponentModel.Design"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.ComponentModel"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Collections"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Drawing"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Workflow.ComponentModel.Compiler"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Workflow.ComponentModel.Serialization"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Workflow.ComponentModel.Design"));
            nameSpace.Imports.Add(new CodeNamespaceImport("System.Workflow.Activities.Rules"));

            CodeTypeDeclaration class1 = new CodeTypeDeclaration("aa.xoml");

            nameSpace.Types.Add(class1);

            CodeMemberMethod code1_execute = new CodeMemberMethod();
            code1_execute.Name = "code1_execute";
            //code1_execute.ReturnType=new CodeTypeReference(""
            code1_execute.Parameters.Add(new CodeParameterDeclarationExpression("System.Object", "sender"));
            code1_execute.Parameters.Add(new CodeParameterDeclarationExpression("System.EventArgs ", "e"));

            CodeMethodInvokeExpression express = new CodeMethodInvokeExpression(new CodeTypeReferenceExpression("System.Console"), "WriteLine", new CodePrimitiveExpression("aa"));
            code1_execute.Statements.Add(express);

            class1.Members.Add(code1_execute);

            string sourceFile = "";

            sourceFile = "Text.cs";

            IndentedTextWriter tw = new IndentedTextWriter(new StreamWriter(sourceFile, false), "   ");

            provider.GenerateCodeFromCompileUnit(unit, tw, new CodeGeneratorOptions());
            tw.Close();

            StreamReader reader = new StreamReader("Text.cs");

            Console.WriteLine(reader.ReadToEnd());
            reader.Close();
            Console.Read();
        }
    }
}

 

 

运行效果:

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace samples {
    using System;
    using System.Xml;
    using System.Collections.Generic;
    using System.Text;
    using System.Workflow.Activities;
    using System.Workflow.Runtime;
    using System.Workflow.ComponentModel;
    using System.ComponentModel.Design;
    using System.ComponentModel;
    using System.Collections;
    using System.Drawing;
    using System.Workflow.ComponentModel.Compiler;
    using System.Workflow.ComponentModel.Serialization;
    using System.Workflow.ComponentModel.Design;
    using System.Workflow.Activities.Rules;
   
   
    public class aa.xoml {
       
        private void code1_execute(object sender, System.EventArgs  e) {
            System.Console.WriteLine("aa");
        }
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值