net动态生成DLLnetdynamicgenerationofDLL_第1页
net动态生成DLLnetdynamicgenerationofDLL_第2页
net动态生成DLLnetdynamicgenerationofDLL_第3页
net动态生成DLLnetdynamicgenerationofDLL_第4页
net动态生成DLLnetdynamicgenerationofDLL_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、net 动态生成 DLL(.net dynamic generation of DLL)使用系统;使用 piler ;使用 microsoft.csharp ;使用系统反射;使用系统文本;使用 system.codedom;使用 System.IO ;命名空间 consoleapplication1< < 摘要 >/ / / 1 的摘要说明。/班班 < < 摘要 >/ / / 应用程序的主入口点/ stathread static void main(String args)/ / TODO: 在此处添加代码以启动应用程序/ /对象(二 “ 38 + 44

2、X 4/2 ”);控制台界面(即 tostring() );readline() 控制台;公共静态对象计算器(字符串表达式)字符串class namespace = “ BS2定制”;/ /命名空间String className = “MF” +“工作”; / / 类名或表名字符串方法名称 =“跑”;表达式=替换。(“ / ”,“ * 1 ”);/ / 生成一个可编译的单元,这是最根部的东西compunit = 新 codecompileunit() CodeCompileUnit ;/ / / / 设置编译器对象创建编译器实例csharpcodeprovider csprovider =

3、新 csharpcodeprovider() ;csprovider createcompiler() ICodeCompiler编者 =;icodegenerator 创 = csprovider 。 creategenerator() ;/ / 生成 CS 文件/ / StreamWriter SW = 新 StreamWriter (“ testywm。CS,假);/ 将作家二新 StreamWriter (“C: testywm。CS,假);StreamWriter 5舛新 StreamWriter (“C: testywm。CS”,假); gen.generatecodefromco

4、mpileunit(compunit, SW 新codegeneratoroptions() );/ / 设置编译参数。compilerparameters 帕拉斯 =新 compilerparameters() ;paras.generateexecutable = false;/ 编译成 exe 还是 DLLparas.generateinmemory = false ;/ 是否写入内存,不写入内存就 写入磁盘paras.outputassembly = “C: 测试。 dll ”;/ / 输出路径paras.includedebuginformation = false ;/是否产生PD

5、B调试文 件默认是假#区动态添加DLL引用了 referencedassemblies 。添加(“系统 DLL”); / / 添加引用 DLL添加了 referencedassemblies 。(”系统。数据。 dll ”); / / 添加 引用 DLL了 referencedassemblies 。添加(“ D:调试 BS2 。核心。 dll ”); / / 添加引用 DLL了 referencedassemblies 。添加(“ D:调试 BS2 。帮助。 dll ”); / / 添加引用 DLL了 referencedassemblies 。添加(“ D: BS2 csla20cs CS

6、LA 仓 调试 CSLA .dll ”); / / 添加引用 DLL#铁心端部定点#区加载引用classsource = 新 stringbuilder() StringBuilder;classsource 。追加(“使用系统;n”);classsource 。追加(“ / / / 内容提要n”);classsource追加(使用系统。收藏。通用;n”);classsource追加(使用系统。文本;n”);classsource追加(使用系统。数据;n”);classsource追加(使用系统。数据。SqlClientn”);classsource附加(“使用CSLA;” n”);class

7、source追加(使用CSLA数据;n”);classsource追加(使用BS2。帮助;n”);classsource追加(使用BS2。帮助。枚举;n”);#铁心端部定点#区命名空间及类名classsource追加(命名空间”+ class namespace +” n”);classsource 。追加(“ n”);” n”);classsource 。追加(“ / / / 职务(可编辑根对象)” n”);» n”);businessbase <“+类名” n”);» n”);SafeDataReader dr )classsource 。追加( classsou

8、rce 。追加( classsource 。追加(_ “ » +“ n”); classsource 。追加( #铁心端部定点 #区构造函数 classsource 。追加( classsource 。追加( classsource 。追加(» n”);/ / / < / 摘要 serializable()公开课” +类名 +“:n”);私人” +类名 +“() /* 需要使用工厂方法私人” +类名 +classsource 。追加(“ n”);classsource 。追加(“ / 取( DR); n”);classsource 。追加(“ n”); #铁心端部定点

9、 #区业务属性classsource 。追加(“私有 _id ;n”);classsource 。追加(“字符串 _jobno = 字符串。空;n”);classsource 。追加(“字符串 _jobname = 字符串。空;n”);classsource 。追加(“字符串 _jobnote = 字符串。空;n”);classsource 。追加(“私有字节 _timestamp = 新的字节 8 ;» n”);classsource 。追加(“ / / / 内容提要n”);classsource 。追加(“ / / / IDn”);classsource 。追加(“ / / /

10、< / 摘要n”);classsource。追加(“系统。它。DataObjectField (真的,真的)» n”);classsource。追加(“系统。它。Browsable (假)n”);classsource 。追加(“ public int IDn”);classsource 。追加(“ n”);classsource 。追加(“ n”);classsource 。追加(“ n”);classsource 。追加(“ canreadproperty ( true );n”);classsource 。追加(“ / / / < /摘要classsourcecla

11、sssourceclasssourceclasssource追加(“回归 _id ; n”);追加(“ n”);追加(“n”);追加(“ n”);classsourceclasssourceclasssourceclasssourceclasssourceclasssourceclasssourceclasssourceclasssourceclasssource追加(“ canwriteproperty ( true ); n”); 追加(“如果( _id !=值)“ n”);追加(“ n”);追加(“ _id = 值; n”);追加(“ propertyhaschanged() ; n”)

12、;追加(“ n”);追加(“ n”);追加(“ n”);追加(“ / / / 内容提要n”);追加(“ / / / 职务编号n”);” n”);classsource 。追加(“ ponentmodelodisplayname (" 职务编号 1) r n");classsource.append ("public string jobno r n");classsource.append ( r n ");classsource.append ("get r n");classsource.append ( r n &qu

13、ot;);classsource.append (canreadproperty (true); r n ");classsource.append ("return _ jobno; r n");classsource.append (' r n ");classsource.append (set r n ");classsource.append ( r n ");classsource.append (canwriteproperty (true); r n ");empty;"if classso

14、urce.append (value = = null) value = string. r n");classsource.append ("if (_ jobno. = value) r n ");classsource.append ( r n ");classsource.append (_ jobno = value; r n ");classsource.append (propertyhaschanged () r n ");classsource.append (' r n ");classsourc

15、e.append (' r n ");classsource.append (' r n ");classsource.append ("/ /" summary " r n");classsource.append ("/ / / / / / /职务名称 r n");classsource.append ("/ > < / - r n");classsource.append ("ponentmodel.displayname (" 职 务名称

16、1) r n ");classsource.append ("public string jobname r n");classsource.append ( r n ");classsource.append ("get r n");classsource.append ( r n ");classsource.append (' r n ");classsource.append (set r n ");classsource.append ( r n ");classsource.

17、append (canwriteproperty (true); r n ");empty;"if classsource.append (value = = null) value = string. r n");classsource.append ("if (_ jobname. = value) r n ");classsource.append ( r n ");classsource.append (_ jobname = value; r n ");classsource.append (propertyhas

18、changed () r n ");classsource.append (' r n ");classsource.append (' r n ");classsource.append (' r n ");classsource.append ("/ /" summary " r n");classsource.append ("/ / / / / / /职务描述 r n");classsource.append ("/ > < / - r n&

19、quot;);classsource.append ("ponentmodel.displayname (" 职 务描述 1) r n ");classsource.append ("public string jobnote r n");classsource.append ( r n ");classsource.append ("get r n");classsource.append ( r n ");classsource.append (canreadproperty (true); r n

20、");classsource.append ("return _ jobnote; r n");classsource.append (' r n ");classsource.append (set r n ");classsource.append ( r n ");classsource.append (canwriteproperty (true); r n ");empty;"if classsource.append (value = = null) value = string. r n&qu

21、ot;);classsource 。追加(“如果( _jobnote !=值)“ n”); classsource 。追加(“ n”);classsource 。追加(“ _jobnote = 值; n”);classsource 。追加(“ propertyhaschanged() ; n”);classsource 。classsource 。classsource 。classsource 。追加(“ n”);追加(“ n”);追加(“ n”);追加(“保护覆盖对象n”);classsource 。classsource 。classsource 。classsource 。追加(“ n

22、”);追加(“回归 _id ; n”);追加(“ n”);追加(“公共重写字符串n”);classsource 。classsource 。追加(“ n”);追加(“回归 _jobno + “ ”+ _jobname + “ ”;classsource 。#铁心端部定点追加(“ n”);#区业务方法#铁心端部定点 #区约束规则classsource 。追加(“保护覆盖空洞 addbusinessrules()n”);classsource 。追加(“ n”);classsource 。追加(基地”。 addbusinessrules() ; n”);classsource 。追加(“ vali

23、dationrules 。 AddRule( bs2.core.validation.bscommonrules.bsstringrequired,“工作”); rn ”);classsource 。追加(“ validationrules 。 AddRulebs2.core.validation.bscommonrules.bsstringrequired”);n”);classsource 。追加(“ n”);#铁心端部定点 #区权限规则classsource 。追加(“公共静态布尔n”);classsource 。追加(“ n”);classsource 。追加(“公共静态布尔” n”)

24、;classsource 。追加(“ n”);classsource 。追加(“ return true ;n”);classsource 。追加(“ n”);classsource 。追加(“公共静态布尔» n”)classsource 。追加(“ n”);classsource 。追加(“ return true ;n”);classsource 。追加(“ n”);classsource 。追加(“公共静态布尔» n”);classsource 。追加(“ n”);classsource 。追加(“ return true ;n”);classsource 。追加(“

25、 n”);#铁心端部定点#地区保存方法classsource 。追加(“ public override ”+类名 +“save()n”);classsource 。追加(“ n”);classsource 。追力口(“如果(是),validati on rules。checkrules();n”);classsource。追加(“如果(! $isNew) & (& (脏)!这个 ischild )和(有效性)和( editlevel = = 0)n”);classsource 。追加(“ n”); classsource。追口(“ enumbussinessobjstate

26、状态=BS2。核心。 命令。 bussinessischanged 。执行( “ ”, mf_job _id , _timestamp , enumdatabase。安全数据库); n”); classsource 。附加(“如果(状态 = = enumbussinessobjstate 。删除)抛出新的 BS2核心。bsupdatebussinessexception ( “当前要保存的对象已 经被删除! “” ) ;classsource 。追加(“如果(状态 = = enumbussinessobjstate 。修 正)n”); classsource 。追加(“ n”); / / cl

27、asssource。追加(“如果(BS2 帮助。showmesssage 确认 (“当前要保存的对象已经被他人修改过! n 保存操作将覆盖他人 修改的内容,是否继续?“) = = false ) throw new BS2 。核心。 bsnormalbussinessexception() ; n”);classsource 。追加(“ n”);classsource 。追加(“如果(状态 = = enumbussinessobjstate 。未 知) throw new BS2 。核心。 bsupdatebussinessexception ( “检 查当前要保存的对象时发生未知情况!“”)

28、 ;classsource 。追加(“ n”);classsource 。追加(“返回基地。 save() ;n”);classsource 。追加(“ n”);#铁心端部定点#区工厂方法(静态)classsource 。追加(“静态” +类名 +“newjob()n”);classsource 。追加(“ n”);classsource 。追加(“如果(! canaddobject() )n”);classsource 。追加(“把新系统。安全。安全异常(n”);classsource 。追加(“用户没有授权添加项目”) ;n”);classsource 。追加(“回归 dataportal

29、 。创建 <“+类名+“>();» n”);classsource 。追加(“ n”);classsource。追加(“静态” + 类名 + “GetJob (int ID ) n”);classsource 。追加(“ n”);classsource 。追加(“如果(! cangetobject() ) n”);classsource 。追加(“把新系统。安全。安全异常(n”);classsource 。追加(“用户无权查看项目”) ; n”);classsource 。追加(“回归 dataportal 。取 +类名+“(新标准(ID); n”);classsourc

30、e 。追加(“ n”);classsource 。追加(“静态” +类名 +“GetJob(safedatareader DR)» n”);classsource 。追加(“ n”);classsource 。追加(“返回” +类名+”( DR); n”);classsource 。追加(“ n”);classsource 。追加(“ public static void DeleteJob( int ID )» n”);classsource 。追加(“ n”);classsource 。追加(“如果(! candeleteobject() ) n”);” n”);cla

31、sssource 。追加(“把新系统。安全。安全异常(classsource 。追加(“用户没有授权删除项目”) ; n”);classsource 。追加(“ dataportal 。删除(新标准 (ID);n”);classsource 。追加(“公共标准( int ID ) n”);classsource 。追加(“ n”); #铁心端部定点#区数据访问方法classsource追加 serializable()” n”);classsource追加私有类标准n”);classsource追加” n”);classsource 。附加(“私有 _id ;” n”);classsource

32、追加public int IDn”);classsource追加classsource追加 return _id” n”);” n”);classsource追加” n”);classsource 。追加(“ _id = ID” n”);classsourceclasssourceclasssourceclasssourceclasssourceclasssourceclasssourceclasssourceclasssource(BS2帮助classsourceclasssourceclasssource追加(“ n”);追加(“ runlocal()n”);追加(“私人新的空隙 data

33、portal_create()n”);追加(“ n”);追加(”;n”);追加(“ n”);追加(“ private void dataportal_fetch (标准)追加(“ n”);追加(“使用(SqlConnection CN=新的 SqlConnection databaseconn。securityconnection )n”);追加(“ n”);追加(“ CN。 open() ;n”);追加(“使用(SqlComman厘米=CN createcommand()classsource 。追加(“ n”);classsource 。追加(“字符串 ”的选择中, PID,jb_no ,

34、 jb_name,jb_note ,lastchanged 从哪里 mf_job 中=”+标准。 ID。 tostring() ;n”);classsource。追口(“ mandtype = CommandType文本;» n”);classsource 。追加(“ mandtext = ssql ;n”);classsource。追力口(“使用(safedatareader DR二新 safedatareader (厘米。 executereader() )n”);classsource 。追加(“ ” n”);classsource 。追加(“如果(博士 read() )n”)

35、;classsource 。追加(“ » n”);classsource 。追加(“取(DR);n”);classsource 。追加(“ » n”);classsource 。追加(“ » n”);classsource 。追加(“» n”);classsource 。追加(“ » n”);classsource 。追加(“ » n”);classsource 。追加(“ 交易( transactionaltypes 。TransactionScope )” n”);classsource追加(“保护覆盖空洞 dataportal_

36、insert()n”);classsource追加(“ n”);classsource(BS2帮助追加(“使用(SqlConnection CN=新的 SqlConnection databaseconn。securityconnection)n”);classsource追加(“ n”);classsource追加(“ CN open() ;n”);classsourcen”);追加(“使用(SqlComman厘米=CN createcommand()classsource追加(“ n”);classsourcejb_note )值追加(“字符串 ” + _jobno +“ ”);n”ssq

37、l =“插入 mf_job( jb_no ,jb_name, + _jobname +a ”a ”);”+追加(“ mandtype =n”);classsourcecommandtype.storedprocedure ;”;addbussinessclasssource 。追加(“ mandtext = n”);Addwithvalue ( " insertsql ", ssql), R n ");classsource 追加(“ cm.parameters 。Classsource.append ("cm.parameters.addwithval

38、ue (" tablename , "MF _ job "), R n ");Classsource.append ("sqlparameter param = newsqlparameter (" ID ", ), R n");Classsource.append ("stop. Direction = parameterdirection.Output; R n");Classsource.append ("cm.parameters.add (stop)

39、, R n");Classsource.append ("stop = new sqlparameter (" newlastchanged ", sqldbtype.timestamp), R n");Classsource.append ("stop. Direction = parameterdirection.Output; R n");Classsource.append ("cm.parameters.add (stop), R n");Classsource.append ("cm

40、.executenonquery (), R n");Classsource.append ("_ id = (int) cm.parameters " " ID.Value; R n");Classsource.append ("_ timestamp = (byte ) cm.parameters " newlastchanged ".Value; R n");Classsource.append (" R n");Classsource.append (" R n&qu

41、ot;);Classsource.append (" R n");Classsource.append ("the transactional (transactionaltypes.transactionscope) R n");Classsource.append ("protected override void dataportal _ update () R n");Classsource.append (" R n");Classsource.append ("if (base.isdirty

42、) R n");Classsource.append (" R n");Classsource.append ("using (SqlConnection CN = new SqlConnection (bs2.help.databaseconn.securityconnection) R n");Classsource.append (" R n");Classsource.append ("cn.open (), R n");Classsource.append ("using (SqlCo

43、mmand cm = cn.createcommand () R n");Classsource.append (" R n");Classsource.append ("string ssql = " update MF _ job set JB _ in = ' "+ _ jobno + ", JB _ name = "" + _ jobname + ", JB _ note =" "+ _ jobnote + "' R n "+&qu

44、ot;);Classsource.append ("" where mid = "+ _ id.tostring (), R n");Classsource.append ("mandtype = commandtype.storedprocedure; R n");Classsource.append ("mandtext = " "updatebussiness R n");Classsource.append ("cm.parameters.addwithvalue ("

45、; updatesql ", ssql), R n");Classsource.append ("cm.parameters.addwithvalue (" tablename , "MF _ job "), R n ");Classsource.append ("cm.parameters.addwithvalue (" ID " _ ID); R n");Classsource.append ("sqlparameter param = newsqlparameter (

46、" newlastchanged ", sqldbtype.timestamp), R n");Classsource.append ("stop. Direction = parameterdirection.Output; R n");Classsource.append ("cm.parameters.add (stop), R n");Classsource.append ("cm.executenonquery (), R n");Classsource.append ("_ time

47、stamp = (byte ) cm.parameters " newlastchanged ".Value; R n");classsource.appe nd ('八 r n ”);classsource.appe nd ('八 r n ");classsource.appe nd ('八 r n ");classsource.appe nd ('八 r n ");classsource.append ("transactional(tra nsacti on altypes.tra ns

48、acti on scope)八 r n ”);classsource.append ("protected override void entry point _ deleteself ()八 r n");classsource.appe nd ("A r n ”);classsource.append ("entry point _ delete (new criteria (_ id);% r n");classsource.append (' A r n ");classsource.append ("tran

49、sactional (transactionaltypes.transactionscope) A r n");classsource.append ("private void entry point _ delete (criteria criteria) A r n");classsource.append ("A r n");classsource.append ("using (sqlconnection cn = new sqlc onn ecti on (bs2.help.databasec onn. securityc

50、 onn ecti on)八 r n");classsource.appe nd ("A r n ”);classsource.append ("cn.open (); and r n");classsource.append ("using (sqlcommand cm = cn.createcommand () A r n");classsource.append ("A r n");classsource.append ("mandtype = commandtype.storedprocedure

51、; A r n");classsource.append ("mandtext = " deletejob "; A r n");classsource.append ("cm.parameters.addwithvalue (*" id) ", criteria.id); A r n");classsource.append ("cm.executenonquery (); and r n");classsource.append (' A r n ");classsource.append (&#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论