2011-09-25 103 views
0

我使用此代碼行中的Web服務發送數據發送圖像數據類型:無法從Web服務

byte[] bajtat = (byte[])dr["Logo"]; 
          MemoryStream ms = new MemoryStream(bajtat, 0, bajtat.Length); 
          ms.Write(bajtat, 0, bajtat.Length); 
          Image img = Image.FromStream(ms, true); 


          var partite = new Partite 
          { 
           EmriPartite = dr.GetString(2), 
           /* 
           * SqlDataReader.GetString - gets the value of the specified column as a string 
           */ 
           NrPartive = dr.GetInt32(1), 
           Akronimi = dr.GetString(4), 
           Foto = img 
          }; 

,它顯示了我的錯誤:

System.Web.Services.Protocols.SoapException :服務器無法處理請求。 ---> System.InvalidOperationException:生成XML文檔時發生錯誤。 ---> System.InvalidOperationException:類型System.Drawing.Bitmap不是預期的。使用XmlInclude或SoapInclude屬性指定靜態未知的類型。 at

回答

0

使用WCF技術從WebService發送圖像數據爲byte []時應該沒有任何問題。你可以爲你的DataContract類使用[DataMember] byte []。將圖像數據完全讀取到字節[]字段。並使用WCF服務發送。

在WP7接收部分,你可以有


    < Image Source={Binding MyImageSource} /> 
Where MyImageSource is a BitmapSource Type. 
    And you can set its instance .SetSource(new MemoryStream(buffer, 0, buffer.Length)); 
Where buffer is the byte[]. 

+0

123開發者,我不知道如何建立你的答案我有這樣的代碼: 字節[]緩衝區=值的byte []; BitmapSource MyImageSource; //我不能make = new BitmapSource() MyImageSource.SetSource(new MemoryStream(buffer,0,buffer.Length); – Edon