新手WCF问题-可消费异步服务这是一个“可以做什么”的问题,而不是“怎么做”的问题。我希望构建一个服务(中间层,.net,提供数据抽象和一些业务逻辑),该服务将由不同平台上的多个内部客户端系统使用。比如一个客户端可能是一个网站,另一个客户端可能是一些Java代码,另一个客户端可能是C#我想在我的服务中提供同步和异步的API,比如GetData、BeginGetData、EndGetData方法。我还希望客户能够注册新“数据”添加到系统的通知。过去,我使用带有TibcoEMS通道的Web服务来实现此通知。我的问题是:我可以通过公开WCF服务来实现三个要求(同步、异步和发布/订阅)吗?非WCF客户端可以使用此服务吗?请原谅问题的含糊不清-我可以根据需要详细说明。提前致谢。方法默认是同步的。要使它们异步,您需要添加此属性[OperationContract(AsyncPattern=true)]并返回一个IAsynchResult,就像您使用winforms执行BeginIvoke()一样。(在此处阅读更多内容http://msdn.microsoft.com/en-us/library/ms734701.aspx)您可以使用称为回调合同的东西发布/订阅(尽管我不确定在其他平台上是否可以实现此目的)我对这些没有太多经验,但它们似乎没有大量编译(您可以在此处阅读更多内容http://dotnetaddict.dotnetdevelopersjournal.com/wcf_alarmclock.htm)在Ninja上可以通过设置AsyncPattern=true设置异步操作也可以在客户端完成,方法是通过设置正确的命令行参数或选中svcutil的GUI版本中的“生成”选项来告诉svcutil生成异步端点。生成异步仍将生成同步操作。客户端异步选项的问题是您需要在Java中复制代码。Svcutil按照您的指定导出VB或C#代码,因此您很可能无需太多工作就可以将C#代码转换为Java。对于Pub/Sub,客户端回调是您想要的操作方式。我正在使用它们,它们工作得很好。在根级别,它们是.NetRemoting并使用事件将数据传递给客户端(我的理解)。我无法确认这是否适用于跨平台,但它应该适用于某些平台。以上就是C#学习教程:初学WCF问题-Consumable异步服务分享,如果对大家有用还需要详细了解C#学习教程,希望大家多多关注-本文来自网络收集,非原创代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
