0

我定义了一个简单的 DTO,具有 Datacontract 和 Datamember 属性,所有数据成员都是整数。我正在返回一个运行良好的列表。但现在我正在压缩列表并以字节数组的形式返回。现在我的服务不再将 DTO 作为其接口的一部分返回,它不会在服务引用中生成类。我无法解压缩它,因为我没有在客户端使用的类型。

我正在使用 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# 答案会很好。

4

1 回答 1

0

嗯..如果我理解得很好,您将 DTO 更改为包含二进制文件,现在您正尝试在服务调用之前的对象实例化期间处理压缩。我对吗?

Gzip 压缩可以在消息级别处理。您可以尝试使用“真实属性”(而不是字节数组)来保持数据协定,并使用 Gzip 压缩创建自定义绑定。这里有一个很好的 WCF 示例(导航到“WCF/Extensibility/MessageEncoder/Compression/CS”)。

于 2013-08-19T22:53:19.590 回答