如何在独立的.vbs文件中从VBScript调用DotNetFactory?

时间:2009-12-31 16:41:08

标签: .net reference vbscript qtp

我一直在探索扩展我的QuickTest Professional脚本功能的选项,今天早上遇到了this article,所以我决定尝试一下。在QTP环境中执行时,下面的代码工作正常,但我也可以看到在QTP环境之外的用途。不幸的是,从独立的.vbs文件运行时会导致错误

Set MyDate = DotNetFactory.CreateInstance("System.DateTime").Now
msgbox MyDate.ToShortDateString()

错误是“需要对象:'DotNetFactory'”

之前我从VBScript做过.Net调用,但是他们都没有使用过DotNetFactory。代码如

Set coll = CreateObject("System.Collections.Queue")

不会导致错误。

我是否需要设置对DotNetFactory的引用?文章

中的文字
  

我们使用'System.DateTime'作为类型名称。   我们不需要指定程序集   为此,因为它属于已经   加载命名空间'系统'   (mscorlib.dll中)。

让我这么认为,因为我的脚本编辑器没有自动加载任何内容。如果是这样,我该怎么做?我没有使用IDE,只使用文本编辑器,所以任何引用都必须由脚本本身加载。

更新:正如Motto指出的那样,没有一些额外的工作就无法完成。该文章的引用指出mscorlib中包含System.DateTime而非DotNetFactory

2 个答案:

答案 0 :(得分:3)

AFAIK DotNetFactory是由QTP创建的对象,不是mscorelib的一部分,正如您在对Mikeb的回答中所说的那样。因此,除非QTP公开了prog-id,否则您无法从VBS文件中的托架访问它。

答案 1 :(得分:0)

您可以创建一个DotNetFactory,如:

Set dnf = CreateObject("Qualified.Name.To.DotNetFactory")
dnf.CreateInstance("System.DateTime")