1

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

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

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

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

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

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

如果我的问题已在其他地方得到解答,我深表歉意,但到目前为止,我找不到任何可以解决我的特定设计问题的东西。

4

0 回答 0