什么是.net 脚本呢?基本上,它就是一个简单的控制台应用程序,从 .dnml 文件( dot net markup language, .net 标记语言, 这是我定义的,哈哈)中读取 xml 文档。这个xml文档包含如下子元素,存储程序集引用,编写的代码所属的语言以及实际的要编译和执行的代码。那个控制台应用程序,我称之为脚本引擎,读取xml 文本并分析出需要的数据。然后它利用csharp, visualbasic, 和 codedom 命名空间中的类编译代码并将作为结果的程序集装载到内存中。教本引擎利用反射机制执行生成的程序集中的入口函数。当用户关闭控制台窗口时,脚本引擎被关闭,在内存中的程序集将不复存在,它将被垃圾回收器清理掉。没有任何的库或可执行程序生成。
dot net 标记语言 让我们来看看.net 标记语言是什么模样的。它其实非常简单。下面就是一个它的例子。我会一一说明xml 文档中的每个元素。
<dnml> <reference assembly="system.windows.forms.dll" /> <language name="c#" /> <scriptcode><![cdata[ using system.windows.forms; public class test { public static void main() { console.writeline("this is a test"); messagebox.show("this is another test"); test2 two = new test2(); two.stuff(); } } public class test2 { public void stuff() { console.writeline("instance call"); } } ]]></scriptcode> </dnml> <span