我正在拼命地做到这一点。
我已经能够复制在这篇文章中发现的行为。
http://damianblog.com/2009/07/05/excel-wcf/comment-page-1/#comment-64232
但是,我无法将数组传递给暴露的 wcf 函数。
我的 WCF 服务是这样工作的(我也尝试使用 int 数组)
public object[] GetSomeArray()
{
return new object[] { 1, 2, 3, 4};
}
public object[] ReturnSomeArray(object someArray)
{
object[] temp = (object[]) someArray;
for (int i = 0; i < temp.Length; i++)
{
temp[i] = (int)temp[i] + 1;
}
return temp;
}
我的 VBA 代码如下所示。
Dim addr As String
...
Dim service1 As Object
Set service1 = GetObject(addr)
Dim columnsVar
columnsVar = Array(1, 2, 3)
Dim anotherArray As Variant
anotherArray = service1.ReturnSomeArray(columnsVar)
我总是在上面的最后一行遇到问题。我不明白为什么如果我能够从我的 WCF 服务返回一个数组,我就不能将相同的数组作为参数传递给另一个 WCF 函数。
我收到一个序列化错误。
任何帮助,将不胜感激。