2013-08-19 59 views
0

我有一個簡單的DTO定義,具有Datacontract和Datamember屬性,所有數據成員都是整數。我正在返回一個正常工作的清單。但現在我正在壓縮列表並返回爲一個字節數組。現在,我的服務不再將DTO作爲其接口的一部分返回,它不會在服務引用中生成類。我無法解壓,因爲我沒有在客戶端使用的類型。將複合類型轉換爲WSDL,即使它不在服務接口中

我正在使用visual studio生成服務引用。

所有的例子似乎都暴露了一個已知類型,其中一個類有另一個類作爲它的一個屬性。所以他們聲明一個類型,然後是一個已知類型,或者正在使用繼承等。我只是想聲明類型。

我已經嘗試了很多事情,包括

<dataContractSerializer> 
    <declaredTypes> 
    <add type="PGF.Business.CustomerCropYearDTO, PGF_ExternalService"> 
    </add> 
    </declaredTypes> 
</dataContractSerializer> 

這裏是類的簡化版本。

<DataContract()> 
Public Class CustomerCropYearDTO 

    <DataMember()> Public Property CustomerCropYearId As Integer 
End Class 

我在VB工作,但一個C#的答案會很好。

回答

0

哼..如果我理解的很好,你改變了DTO包含一個二進制文件,現在你正試圖在服務調用之前的對象實例化過程中處理壓縮。我對嗎?

可以在消息級別處理Gzip壓縮。您可以嘗試保持與「真實屬性」(而不是字節數組)的數據約定,並使用Gzip壓縮創建自定義綁定。有一個很好的WCF示例here(定位到「WCF /可擴展性/消息編碼器/壓縮/ CS」)。

+0

我改變了服務接口從返回DTO到返回一個字節數組。現在WCF不會「知道」DTO正在返回給客戶端。所以它不會在代理中生成它。 – PatFromCanada

相關問題