vbScript System.Collections.ArrayList对象不支持... list.Add

时间:2013-12-13 20:47:51

标签: .net arraylist vbscript

我在使用CreateObject("System.Collections.ArrayList")

解析oList对象时遇到问题

我在vbscript中得到的错误

  

“Microsoft VBScript运行时错误:对象不支持此属性或方法:'list.Add'”

基于this教程,我知道你可以在vbscript中使用COM包装的.Net组件;那么为什么这不起作用?

其他信息:

当我在VS08中调试并添加监视列表时,它会显示Children could not be evaluated.

objNode.value的监视有两个字符的字符串值。 (这是预期的行为)

Function ProcessXML(oXML) 
  STOP
  xPathExemptions= "//Exemption/@ExemptCodeWord"
  Dim xmlDoc : Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")
  xmlDoc.Async = False
  xmlDoc.loadXML(oXML)

  Dim colNodes 
  Set colNodes = xmlDoc.selectNodes(xPathExemptions)
  Dim oList
  Set oList = CreateObject("System.Collections.ArrayList")
  Dim objNode

  For Each objNode in colNodes
    oList.Add = objNode.value
  Next

  'ProcessExemptions = CStr(xmlDoc.selectNodes(xPathExemptions))

End Function 

如果您对我的vbscript有任何意见;请让我知道 - 刚开始学习并且不了解最佳实践。

1 个答案:

答案 0 :(得分:3)

更改:

oList.Add = objNode.value

<强> ...为:

oList.Add objNode.value

(感谢@Ansgar的指导)

Call oList.Add(objNode.value)

以下是演示:

Option Explicit

Dim oList : Set oList = CreateObject("System.Collections.ArrayList")

oList.Add "Banana"
oList.Add "Apple"
oList.Add "Orange"
oList.Add "Grapes"
oList.Add "Plum"

oList.Sort

Dim oItem
For Each oItem In oList
    WScript.Echo oItem
Next

预期输出:

Apple
Banana
Grapes
Orange
Plum

您可以在Eric Lippert的informative article中找到有关使用括号的古怪规则与VB和VBScript的更多信息。