2013-04-11 38 views
0

我在服務器1中創建以下方法:不能鍵入「WebService2.CustomServiceProxy.MemoryStream」隱式轉換爲「System.IO.MemoryStream」

public System.IO.MemoryStream ms(string sessionID, int customerID) 

在服務器2我送參數,此方法:

CustomService customService = new WebService2.CustomServiceProxy.CustomService(); 
System.IO.MemoryStream MS = customService.ms(s.SessionID, Cust.Id); 

CustomServiceProxy是指向服務器1

所以Web引用的名稱做這個的時候,我receing消息:

錯誤1無法隱式轉換類型 'WebService2.CustomServiceProxy.MemoryStream' 到 'System.IO.MemoryStream'

任何想法?

謝謝你的幫助。

+2

不返回內存流,返回一個字節數組。 – 2013-04-11 21:21:47

+0

您的網絡代理創建將會有一些選項,比如「使用現有類型」,這些選項將被*檢查。代理創建過程重新創建了一個「MemoryStream」類。您可以通過更改代理生成選項來避免這種情況。 **但是,正如Lasse所說的,從這樣的服務中你應該返回一個字節數組,而不是'MemoryStream'。你可以使用'GetBuffer'方法從'MemoryStream'中獲得一個字節數組 - http://msdn.microsoft.com/en-AU/library/system.io.memorystream.getbuffer.aspx – Snixtor 2013-04-11 21:38:32

回答

0

我的第一個想法是演員。這樣的事情:

System.IO.MemoryStream MS = (System.IO.MemoryStream)customService.ms(s.SessionID, Cust.ID); 

不知道這是否會工作,但它是。祝你好運

+0

嗨,我試過了,但是我仍然收到相同的錯誤: -/ – user2272080 2013-04-12 13:39:01

+0

@ LasseV.Karlsen是正確的,你應該將內存流轉換爲字節數組並返回。 – 2013-04-12 18:10:58

相關問題