WCF 서비스에 대한 인수로 배열을 전달하려고합니다.Excel VBA에서 WCF 서비스에 배열 인수 전달
using System;
using System.ServiceModel;
namespace WcfService1
{
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int[] value);
}
}
using System;
namespace WcfService1
{
public class Service1 : IService1
{
public string GetData(int[] value)
{
return string.Format("You entered: {0}", value[0]);
}
}
}
엑셀 VBA 코드 :
Dim addr As String
addr = "service:mexAddress=""net.tcp://localhost:7891/Test/WcfService1/Service1/Mex"","
addr = addr + "address=""net.tcp://localhost:7891/Test/WcfService1/Service1/"","
addr = addr + "contract=""IService1"", contractNamespace=""http://tempuri.org/"","
addr = addr + "binding=""NetTcpBinding_IService1"", bindingNamespace=""http://tempuri.org/"""
Dim service1 As Object
Set service1 = GetObject(addr)
Dim Sectors(0 to 2) as Integer
Sectors(0) = 10
Sectors(1) = 20
MsgBox service1.GetData(Sectors)
이 코드가 작동이 사용 데미안의 샘플 코드를 테스트하기 위해, 나는 그것이 인수로 단일의 int 대신 int 배열을 전달하려고 GetData의 수정 WCF Test Client를 사용해도 좋지만 Excel에서 사용하려고하면이 문제가 발생합니다. Excel에서 service1.GetData 호출에 도달 할 때, 다음과 같은 오류를보고 인터페이스 사양과 VBA 호출 사이에 호환성이 같은
>Run-time error '-2147467261 (80004003)'
>
>Automation error
>Invalid Pointer
것 같습니다.
VBA에서 배열을 WCF로 전달하려고 시도한 적이 있습니까? 잘못되었거나 서비스 모니 커를 사용하여 지원되지 않습니까?
서비스가 다른 operationcontract에서 배열을 생성하고 Excel에서 직접 입력으로 피드를 가져올 수 없다는 점에 주목하십시오. 형식 불일치 오류가 발생합니다. – tbischel
[블로그 기사] (http : //)를 확인하십시오. damianblog.com/2009/07/05/excel-wcf/)을 다시 읽고 '작동하지 않을 때'섹션에서 그가 설명하는 단계를 따르십시오. 그는 Visual Studio 디버거를 Excel에 연결하여 throw되는 .NET Exception에 대한 자세한 정보를 얻을 수있는 방법을 알려줍니다. 어쩌면이 추가 정보로 질문을 업데이트하면 도움이 될 것입니다! – sitnik