我有一个Product Datacontract,其中包含几个属于WCF服务的Datamembers。我还使用DataContractSerializer将此产品Datacontract序列化并存储在我的应用程序中。
现在,我想在生成服务元数据(WSDL)时删除Product Datacontract的一些Datamembers。但是,当我在应用程序中序列化对象时,我希望Product Datacontract中的所有Datamembers都可用。
实际上,我想做的是:抓住WSDL生成过程并删除所需的Datamembers注入生成的WSDL。
由于 Mofolo
答案 0 :(得分:2)
黑客攻击WSDL不包含这些信息对你没有帮助。在将类型传递给客户端以及从客户端反序列化时,您的服务仍将使用类型的完整序列化。而不是黑客攻击WSDL和WCF使用DTO进行WCF服务=新的类型集合,它们只包含您真正想要与客户交换的属性。将主对象转换为DTO,反之亦然(您可以创建自己的自定义转换器或使用某些框架,如AutoMapper)。这是最好的做法。