我知道WCF是一个消息传递系统,具有指定的Service Contract
接口,声明可以作为Data Contract
类的参数实例返回或接受的方法。
我的问题是:是否可以使用WCF实现一种面向对象的通信?例如:
Service Contract
接口方法是否可以返回另一个Service Contract
?这将使我能够创建一个实例树,面向对象通信的第一步。Service Contract
不仅可以实现方法,还可以实现属性吗?如果您有任何其他想法来创建这种面向对象的通信,请告诉我。我有点卡在这里。
答案 0 :(得分:4)
好吧,按顺序:
ServiceKnownTypeAttribute
或通过DataContract
进行装饰),否则您将遇到序列化问题。< / LI>
你怎么能这样做......我假设这一切都是从客户的角度出发的。 因此,在客户端上,您可以在服务代理上创建一个包装器,并使其公开属性和其他契约,就像您调用它们一样。合同可以是其他服务代理的包装(或者相同,取决于您的需要)。
所以,最重要的是你必须直接在客户端上模仿你所要求的东西。
你不应该考虑延伸/扩展WCF,而不是默认情况下它可以做什么,但只有在真正需要的时候才能在它上面编写自己的框架。 WCF本身可以处理很多场景,您可能需要稍微调整一下您的需求或技术设计。