我有一個WCF服務公開了一個方法,該方法返回一個包含Image屬性的對象數組(參見下面的代碼)。在相同的解決方案中,我有一個類庫項目,它具有對我的WCF項目的服務引用。在類庫中,當我嘗試「更新服務引用」時,我的代理類變爲不可用。當我從我的類中刪除「圖形」屬性時,我沒有更新類庫中的服務引用的困難,我的代碼都編譯並運行良好。我把「圖形」屬性放回來,代理類再次變得不可用。更奇怪的是,服務引用公開的唯一類是「Image」。在WCF中,如何返回包含System.Drawing.Image屬性的類?
我在這裏忽略了什麼?
[Serializable]
public class PhotoDTO
{
public Guid Id { get; set; }
public Image Graphic { get; set; }
}
[ServiceContract]
public interface IGeneralService
{
[OperationContract]
PhotoDTO[] GetPhotos(Guid subsectionId);
}
都能跟得上。這是行不通的。我玩過這些,還有擺弄[KnownType(typeof(System.Drawing.Image))]]屬性,但沒有太多的運氣。 一些帖子指出,如果我的圖形屬性是一個字節[],它會工作,我懷疑這是真的。但是,服務調用任何一方的代碼都希望使用Graphic屬性作爲Image。一種選擇是提供另一個屬性 byte [] GraphicAsByte {get;組; } 或類似的東西,將圖像轉換成一個字節[],但這似乎是一種黑客。 – 2009-11-20 03:01:17
看到我的更新,用於調試序列化問題的不錯代碼... – 2009-11-20 03:41:11