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

!本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使用方面,本人不保证相应的兼容和可操作性。

我这里要说的是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》

若无特别说明,本网站文章均为原创,原则上这些文章不允许转载,但是如果阁下是出于研究学习目的可以转载到阁下的个人博客或者主页,转载遵循创作共同性“署名-非商业性使用-相同方式共享”原则,请转载时注明作者出处谢绝商业性、非署名、采集站、垃圾站或者纯粹为了流量的转载。谢谢合作!

请稍后...

发表评论

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