Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将复合类型获取到WSDL中,即使它不在服务接口中_.net_Vb.net_Visual Studio 2010_Wcf - Fatal编程技术网

.net 将复合类型获取到WSDL中,即使它不在服务接口中

.net 将复合类型获取到WSDL中,即使它不在服务接口中,.net,vb.net,visual-studio-2010,wcf,.net,Vb.net,Visual Studio 2010,Wcf,我定义了一个简单的DTO,使用Datacontract和Datamember属性,所有Datamember都是整数。我正在返回一份工作正常的清单。但现在我压缩列表并返回字节数组。既然我的服务不再返回DTO作为其接口的一部分,它就不会在服务引用中生成类。我不能解压缩它,因为我没有类型的工作在客户端 我正在使用VisualStudio生成服务引用 所有的例子似乎都是关于公开一个已知类型,其中一个类有另一个类作为其属性之一。所以他们先声明一个类型,然后声明一个已知的类型,或者使用继承等等。我只想声明这

我定义了一个简单的DTO,使用Datacontract和Datamember属性,所有Datamember都是整数。我正在返回一份工作正常的清单。但现在我压缩列表并返回字节数组。既然我的服务不再返回DTO作为其接口的一部分,它就不会在服务引用中生成类。我不能解压缩它,因为我没有类型的工作在客户端

我正在使用VisualStudio生成服务引用

所有的例子似乎都是关于公开一个已知类型,其中一个类有另一个类作为其属性之一。所以他们先声明一个类型,然后声明一个已知的类型,或者使用继承等等。我只想声明这个类型

我试过很多东西,包括

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

这里是这个类的缩写版本

<DataContract()>
Public Class CustomerCropYearDTO

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

公共类CustomerCropYearDTO
公共属性CustomerCropyerId为整数
末级

我在VB中工作,但C#答案就可以了。

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


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

我将服务接口从返回DTO更改为返回字节数组。现在WCF并不“知道”DTO正在返回给客户端。所以它不会在代理中生成它。