2011-07-04 3 views
4

com을 사용하여 C#에서 고전 ASP로 배열을 반환하려고합니다. This post helped me lot,하지만 난 여전히이 문제 :배열 C#에서 COM을 사용하여 클래식 ASP

나는 C#에서 다음과 같은 방법이 있습니다

public object[] returnStuff() { 
    return new object[] {'1','2','3'}; 
} 

내 기존 ASP :

dim responseArray1 

responseArray1 = RegusSoapComponent.returnStuff() 

response.write("Type of Array one is " & VarType(responseArray1)) 
response.write("Type of Array one is " & responseArray1(1)) 

내 출력은 다음과 같습니다

response is Type of Array one is 8204 

Microsoft VBScript 런타임 오류 '800a01ca'

변수는 상관없이 내가 뭘하지

VBScript를

에서 지원 자동화 형식을 사용하지 않고,이 변수에 액세스 할 수 있도록하지 않는 것.

+0

return new object [3] { '1', '2', '3}}; ? – Gage

+0

@Gage : 런타임에는 아무런 차이가 없습니다. – SLaks

+0

@SLaks, 나는 그것도 생각하지 않는다. – Gage

답변

4

VBScript는 변형의 safearray를 포함하는 variant를받는 것을 좋아합니다. 따라서 객체의 배열을 래핑하는 객체를 반환해야합니다. 예 :

public object returnStuff() { 
    return new object[] {'1','2','3'}; 
} 

올바른 방법으로 마샬링해야합니다. 자세한 버전은 a previous answer을 참조하십시오.