我一直在探索扩展我的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
。
答案 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")