惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
C
Check Point Blog
B
Blog RSS Feed
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
A
About on SuperTechFans
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
小众软件
小众软件
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
GbyAI
GbyAI
The Cloudflare Blog
博客园 - 叶小钗
S
SegmentFault 最新的问题
博客园 - Franky
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
B
Blog
Jina AI
Jina AI

博客园 - 随风而去

easyui表格格线错位 从sp_executesql中返回table型数据及动态SQL语句的参数化查询 vb6转vb.net wss 备份与还原相关的站点 怎么用javascript进行拖拽 gridview无数据行时显示表头的方法 WSS3 顺序工作流之发布链接 域FRS复制策略失败后用ansiedit.msc用的着的几个值.恢复FRS对象或属性缺少 工作流一些链接 xp下自定义纸张 有用的几个系统过程 不错的CRM软件 wss3 Beta2 TR下载 终于完成第一个Wss3上WebPart(treeview 目录树形控件) 运行时选择界面上控件的方法 asp.net 变量保存方法 利用IsPostBack检查网页是不是第一次进入(asp.net) 微软的设计思想:总感觉有点返祖现象,以前VB中很方便的功能,在C#中却要很复杂才能实现 treeview 用友u8之远程信道错误解决方法
CODEDOM动态编译相关资料
随风而去 · 2006-07-31 · via 博客园 - 随风而去

http://www.cnblogs.com/lichdr/category/12610.html

http://www.manbu.net/Lib/Class2/Sub1/1/2.asp

   //保存源代码的流。
   Stream codeStream = File.Open("Test.cs",FileMode.Create);
   StreamWriter codeWriter = new StreamWriter(codeStream);

   //创建一个代码生成器实例
   CSharpCodeProvider provider = new CSharpCodeProvider();
   ICodeGenerator codeGenerator = provider.CreateGenerator(codeWriter);
   CodeGeneratorOptions codeGeneratorOptions = new CodeGeneratorOptions();

   //添加命名空间
   CodeSnippetCompileUnit literal = new CodeSnippetCompileUnit
    ("using System;\nusing System.Data;\nusing System.Data.SqlClient;\n");
   codeGenerator.GenerateCodeFromCompileUnit(literal,codeWriter,codeGeneratorOptions);

   //命名空间以及在此命名空间下面创建一个类
   CodeNamespace codeNamespace = new CodeNamespace("Codedom");
   CodeTypeDeclaration codeTypeDeclaration = new CodeTypeDeclaration();
   codeTypeDeclaration.Name = "TestClass";
   codeTypeDeclaration.IsClass = true;
   codeTypeDeclaration.TypeAttributes = TypeAttributes.Public;
   codeNamespace.Types.Add(codeTypeDeclaration);

   //创建一个默认的构造函数
   CodeConstructor codeConstructor = new CodeConstructor();
   codeConstructor.Attributes = MemberAttributes.Public;
   codeTypeDeclaration.Members.Add(codeConstructor);

   //创建一个私有的字段
   CodeMemberField codeMember = new CodeMemberField();
   codeMember.Name = "sTest";
   codeMember.Attributes = MemberAttributes.Private;
   codeMember.Type = new CodeTypeReference(typeof(string));
   codeTypeDeclaration.Members.Add(codeMember);

   //添加一个可以操作和读取的属性
   CodeMemberProperty codeMemberProperty = new CodeMemberProperty();
   codeMemberProperty.Name = "Test";
   codeMemberProperty.Attributes = MemberAttributes.Public;
   codeMemberProperty.Type = new CodeTypeReference(typeof(string));
   codeMemberProperty.GetStatements.Add
    (
    new CodeMethodReturnStatement
    (
    new CodeFieldReferenceExpression(new CodeThisReferenceExpression(),"sTest")
    )
    );
   codeMemberProperty.SetStatements.Add
    (
    new CodeAssignStatement
    (
    new CodeFieldReferenceExpression(new CodeThisReferenceExpression(),"sTest"),new CodePropertySetValueReferenceExpression()
    )
    );
   codeTypeDeclaration.Members.Add(codeMemberProperty);