Asp classic 无法从ASP.NET调用返回字符串[],该字符串为';它是有用的

Asp classic 无法从ASP.NET调用返回字符串[],该字符串为';它是有用的,asp-classic,Asp Classic,我确实在寻找这个,但我找不到答案,尽管它看起来很琐碎 我在ASP.NET中有一个返回字符串的变量 string[] arrayOfThings { get { return new string[] { ... } } } string arrayOfThings { get { return String.Join(",", new string[] { ... }) } } 我在ASP中调用了它 Dim someString For Each someString In someClas

我确实在寻找这个,但我找不到答案,尽管它看起来很琐碎

我在ASP.NET中有一个返回字符串的变量

string[] arrayOfThings { get { return new string[] { ... } } }
string arrayOfThings { get { return String.Join(",", new string[] { ... }) } }
我在ASP中调用了它

Dim someString
For Each someString In someClass.arrayOfThings
    # Do Something with someString
Next
这是行不通的。它返回“类型不匹配”异常

当我尝试调试时,IsArray(someClass.arrayOfThings)返回True,但它没有计数,没有属性,什么都没有。UBound(someClass.arrayOfThings)是0,这是我所期望的,因为它只有1个元素。但是,我无法通过someClass.arrayOfThings(0)引用元素

我是ASP新手,但我不知道我做错了什么。我真希望ASP是强类型的

编辑:我尝试创建一个具有相同值的数组,并将其与我从arrayOfThings获得的结果进行比较,在调试器窗口中,它们看起来是相同的,但在一种情况下我可以循环使用它,而在另一种情况下,我不能

仅供参考,目前我的工作原理如下:

我在ASP.NET中有一个返回字符串的变量

string[] arrayOfThings { get { return new string[] { ... } } }
string arrayOfThings { get { return String.Join(",", new string[] { ... }) } }
然后在ASP

Dim someString
For Each someString In Split(someClass.arrayOfThings, ",")
    # Do Something with someString
Next

这是可行的。

使用这种方法:-

 object[] arrayOfThings { get { return new object[] { ... } } } 

使用字符串数组的问题在于,它在COM语言中封送为BSTR的安全数组。但是VBScript只能处理变量的安全数组。使用对象应该会产生一个变量数组。

经典的asp数组和.NET数组不是一回事。如何将.NET数组分配给经典asp变量?你能出示密码吗?如何在经典asp中填充
someClass
?我并没有将其分配给变量。我没有在classic中填充任何类。我只需设置someClass=Server.CreateObject(“someClass”),然后调用someClass.someConstructor.you Have Have
someClass
COM visible?是的。目前,我只是将arrayOfThings设置为逗号分隔的字符串,然后进行拆分以恢复数组。我只是想知道是否有更优雅的解决方案。它的类型(或从ASP.NET字符串[]到ASP数组的转换)不好用,其他一切都正常。