我有一個web服務,它包裝一個COM對象的函數以減少RPC通信錯誤。我傳遞給特定Web服務的參數是string[]
。一個問題似乎在於COM對象函數,它需要一個對象引用。將字符串[]作爲對象引用傳遞給COM對象
有些錯誤會顯示在網頁上,因爲它們來自COMClass(錯誤87),其他錯誤是編譯器錯誤。我試圖指出下面是哪個。
[WebMethod(EnableSession=true)]
public int WSFunc(string[] StringArray){
//object StringArr = (object)((object[])StringArr); //returns error 87 in webpage log
//object StringArr = (object)StringArr; //returns error 87 in webpage log
//public override int COMClass.Func(ref object pStringList)
return COMClass.Func(ref StringArr);
//return COMClass.Func(ref StringArray); //Doesn't build, cannot convert from 'ref string[]' to 'ref object' (CS1503)
//return COMClass.Func(ref (object)StringArr); //Doesn't build, A ref or out argument must be an assignable variable (CS1510)
}
此外,這產生相同的結果(誤差87 - 參數不正確):
[WebMethod(EnableSession=true)]
public string WSFunc(string[] StringArray){
object[] StringObj = new object[StringArray.Length];
for(int i = 0; i < StringArray.Length; i++){
StringObj[i] = StringArray[i];
}
object MyString = (object)StringObj;
return ComClass.Func(ref MyString);
}
有沒有其他人遇到這個問題?
您無法將對象傳遞給COM,它不知道對象是什麼。你將不得不編組。 http://msdn.microsoft.com/en-us/library/aa719715(v=vs.71).aspx和http://msdn.microsoft.com/en-us/library/aa719861(v=vs.71 ).aspx – Hogan 2011-05-24 21:44:27