ASP/VBScript访问并使用.NET Framework对象

我这里要说的是ASP,没错,不是ASP.NET,我们所要做的是如何让ASP像ASP.NET那样访问.NET Framework的内置对象,首先我们需要安装.NET Framework环境,然后下一步呢?CreateObject创建对象?答对了一半,不过有一点要让你失望了,那就是大多数.NET Framework类对于ASP是无法访问的,别急,仍然有大量.NET 类实现了可调用 COM 接口,也就是说,我们可以像创建普通COM对象那样创建它们。

在具体操作前,不妨打开我们的注册表,定位到HKEY_CLASSES_ROOT,然后你就会发现有大量的.NET类的ProgId和CLSID,这样我们就可以通过这些特征信息来创建并使用这些对象。

注册表中.NET对象的COM接口.png

Microsoft TechNet的《您好,脚本专家!》栏目中介绍了如何在WScript脚本宿主中调用这些对象,比如System.Collections.ArrayList,我们现在可以除了Scripting.Dictionary外有了更多的选择,其中ArrayList的Sort排序等功能更是我们所垂涎的,比如脚本专家上的示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set DataList = CreateObject _
      ("System.Collections.ArrayList")
 
DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"
 
DataList.Sort()
 
For Each strItem in DataList
    Wscript.Echo strItem
Next
Set DataList = Nothing

我们可以很容易的就将其改成ASP版本的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%
Set DataList = Server.CreateObject _
      ("System.Collections.ArrayList")
 
DataList.Add "B"
DataList.Add "C"
DataList.Add "E"
DataList.Add "D"
DataList.Add "A"
 
DataList.Sort()
 
For Each strItem in DataList
    Response.Write strItem
Next
 
Set DataList = Nothing
%>

经过测试这样是可行的,怎么样,是不是很方便,关于ArrayList更多的使用方法可以参考MSDN的.NET Framework手册了,这样我们写ASP程序又多了一种更为强大的选择,不过我还是奉劝还在搞鼓ASP的程序员,该换换口味了,为何不试试更为强大的ASP.NET或者PHP呢?

参考文档《.NET COM+ Interop Component with Classic ASP》

《ASP/VBScript访问并使用.NET Framework对象》有3个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据