详解VB.NET动态编码技巧
创始人
2024-06-08 15:10:31
0

VB.NET有很多值得学习的地方,这里我们主要介绍VB.NET动态编码技巧,包括介绍Parms.OutputAssembly属性等方面。

VB.NET动态编码技巧

首先创建了一个使用VBCodeProvider的编译器Comp。.NET版本使用的是不同的方法但是这里所讲的是微软推荐的一个新方法。

为了使用编译器,你必须创建能描述应用程序的参数。这些参数类似于VS中你创建的参数,只是现在你可以对它们进行定义。该代码一开始就将GenerateExecutable设置为True,这意味着你需要的是一个EXE文件而不是DLL.

Parms.OutputAssembly属性包含了输出文件的名称。你只需要在想创建文件时提供这一信息即可,而不需要生成可执行内存了。如果你ixiang生成可执行文件的内存版本,可以将Parm.GenerateInMemory属性设置为True.

使用Parm.TreatWarningsAsErrors属性来确定如何处理警告信息。默认的设置会使其为错误,这意味着你的应用程序可能无法对其进行编译。大多数程序员使用默认设置,尽管他们开发了程序,但是在开发完成的程序中却将其设置为False.

大多数应用程序需要外部DLL以正常运行。当然,你不能创建任意的没有引用外部DLL的Windows表单程序。通常,你要使用Reference文件夹来完成这一任务。不过,当你动态创建代码的时候可以依赖于Parms.ReferencedAssemblies属性。如下所示,只需添加你要的DLL即可。

现在,你已经定义了项目,接下来需要为其创建源代码。如前文所述,你可以依赖于一个外部文件或DOM模式。然后,该示例创建了代码因此你可以看到整个过程。下面是代码的原始形式:

  1. Imports System.Windows.Forms   
  2. Module TestAssembly  
  3. Sub Main()  
  4. MessageBox.Show("Dynamically Created Code!")  
  5. End Sub  
  6. End Module  

这个简单的例子显示了一个对话框。注意vbCrLf的使用。如果你不使用这一方法,那编译器会发送给你一个错误信息。vbCrLf条目在该代码中所起的作用与在程序代码中的作用相同,只是添加的方式不一样。

从这一点老说,你***会用Comp.CompileAsseblyFromSource()方法编译代码。当使用DOM模式和文件的时候可以使用这一方法。而在所有三种情况中,编译器用参数和源代码创建了你请求的输出。该运算的输出出现在Executable中,是CompilerResults类型。

编译的失败次数多于程序员的预计。无论你是在哪里使用VB.NET动态编码技巧,你必须假设会出现失败的情况以及处理失败的方案。在本例中,代码寻找的是错误并在编译失败时将其展示在了信息框中。否则,代码会依赖于Process.Start()方法来启用可执行文件。

VB.NET动态编码技巧并不是***钥匙。当你为开发问题找到了好的静态解决方案时,当然也可以使用。但是在我们所列出的情况中没有可行的静态方案,因此要选择VB.NET动态编码技巧。大多数情况下,要用VB.NET动态编码技巧解决以下问题:
◆用户的环境会以不可预见的方式更改时;
◆无法控制用户电脑的安装;
◆用户或应用程序都添加了你要用控件执行的数据要素;
◆应用程序必须执行很早以前的安装任务,且这些任务与电脑,环境,网络或其他不确定因素联系紧密时;
◆应用程序要执行了处理级别的任务,且这些任务取决于机器连接或其他状况。

显然,还有其他一些情况能使用VB.NET动态编码技巧。最重要的是记住但凡有不可预知的情况下要考虑使用VB.NET动态编码技巧。通常在编码环境中出现了静态代码无法处理的情况时,我们就可以使用VB.NET动态编码技巧。

【编辑推荐】

  1. 浅谈VB.NET线程构造器
  2. 简单分析VB.NET使用线程
  3. VB.NET List(T)编写框架方法
  4. 简单介绍VB.NET线程同步
  5. VB.NET声明API详细描述

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...