如何在VBScript中传递列表(在VB.net函数中返回)?
我在VB.net中有一个返回字符串列表的系统函数(我已经调试了这个函数)。 现在我需要在VBScript中调用该系统函数。我怎样才能得到字符串列表 net系统功能如何在VBScript中传递列表(在VB.net函数中返回)?,vb.net,list,vbscript,vb.net-2010,Vb.net,List,Vbscript,Vb.net 2010,我在VB.net中有一个返回字符串列表的系统函数(我已经调试了这个函数)。 现在我需要在VBScript中调用该系统函数。我怎样才能得到字符串列表 net系统功能 Public Function someList As List(Of String) Return List End Function VBScript: Dim results Set results = System.someList For Each result In results wscript.e
Public Function someList As List(Of String)
Return List
End Function
VBScript:
Dim results
Set results = System.someList
For Each result In results
wscript.echo result
Next
问题是VBScript不理解泛型类(或者问题出在COM上),因此必须将列表转换为非泛型类,例如
ArrayList
在尝试使用VBScript中的C#库时,我遇到了同样的问题,我编写了一个简单的转换函数(用C#)来解决这个问题:
public ArrayList toArrayList(IEnumerable collection)
{
var arrayList = new ArrayList();
foreach (object element in collection)
{
arrayList.Add(element);
}
return arrayList;
}
在这里可以找到我需要的更多帮助功能:查看此链接嗨,谢谢你的回复。我有一些需要vbscript文件调用的系统函数。所有其他函数都可以称为successful。只有此函数才能返回无法调用的列表。所以我认为这个函数的返回类型可能会导致这个问题。我想知道我还能用列表作为返回类型吗?或者我需要将返回类型更改为ArrayList?或者您有什么建议吗?VBScript不能使用.Net API,除非.Net类公开COM接口(如
ArrayList
或StringBuilder
)。此外,所有其他函数都通过函数名调用。我使用类似这样的东西:wscript.echo System.FunctionName。当我运行文件时,它会在弹出窗口中为我提供正确的值WScript
是运行时环境(更具体地说是由解释器WScript.exe
和cscript.exe
)提供的一个内在对象。这一点不适用于.Net系统
命名空间。