在WCF服务/客户端中进行自定义序列化的设计解决方案

时间:2013-11-11 22:21:54

标签: c# wcf serialization

我的任务是在接收/传输大量数据的WCF服务中实现自定义序列化。

我在MSDN上查看了this示例以找到解决方案:作者为其服务合同创建了序列化属性,并在每个数据协定类上实现了序列化接口。

我喜欢这个想法,但在这个例子中,他只是通过在主线程中启动代理通道并让它获取数据来演示项目的正确性。我的客户端将作为单独的应用程序构建,这使得它继承序列化属性和数据协定的方式变得复杂。

我将序列化属性和数据协定移动到它们自己的库中,并在服务和客户端项目中包含引用,以便它们都可以使用它们。在生成的客户端对服务的引用代码中,我在服务契约/接口上添加了属性,并且确定序列化在客户端工作。

有没有更优雅的方法来解决这个问题?有没有办法在元数据上传递自定义序列化?我不希望有办法,但我是WCF编程的新手。我担心我目前的设计可能不是最好的行动方案,也许有些WCF技术可能更适合我的目的。此外,如果需要由.NET框架之外的应用程序访问此服务,我的序列化库将毫无用处。

我也意识到我的方法有点打败了服务广告它的数据合同:与服务通信的任何客户都必须忽略元数据中的数据合同并使用公共库中的类。如果客户端不知道这个公共库,它将收到它尝试的任何操作契约的错误和空值。

如果我的问题已在其他地方得到解答,我道歉,但到目前为止,我找不到任何可以解决我的具体设计问题的内容。

0 个答案:

没有答案