面向对象与WCF的通信

时间:2013-05-21 18:29:10

标签: wcf object communication

我知道WCF是一个消息传递系统,具有指定的Service Contract接口,声明可以作为Data Contract类的参数实例返回或接受的方法。

我的问题是:是否可以使用WCF实现一种面向对象的通信?例如:

  • Service Contract接口方法是否可以返回另一个Service Contract?这将使我能够创建一个实例树,面向对象通信的第一步。
  • 更好的是,Service Contract不仅可以实现方法,还可以实现属性吗?

如果您有任何其他想法来创建这种面向对象的通信,请告诉我。我有点卡在这里。

1 个答案:

答案 0 :(得分:4)

好吧,按顺序:

  1. WCF允许您从合同方法返回接口。但是,您计划在服务中使用的该接口的所有实现都需要为服务所知(通过ServiceKnownTypeAttribute或通过DataContract进行装饰),否则您将遇到序列化问题。< / LI>
  2. 不,只允许使用方法。这是它的工作原理。想象一下,如果支持属性,代理的实现(生成与否)将是什么样子。对于可以通过方法轻松解决的问题,有很多并发症。
  3. 你怎么能这样做......我假设这一切都是从客户的角度出发的。 因此,在客户端上,您可以在服务代理上创建一个包装器,并使其公开属性和其他契约,就像您调用它们一样。合同可以是其他服务代理的包装(或者相同,取决​​于您的需要)。

    所以,最重要的是你必须直接在客户端上模仿你所要求的东西。

    你不应该考虑延伸/扩展WCF,而不是默认情况下它可以做什么,但只有在真正需要的时候才能在它上面编写自己的框架。 WCF本身可以处理很多场景,您可能需要稍微调整一下您的需求或技术设计。