这是一个更像是“能否完成”的问题,而不是“如何完成”的问题。我正在考虑构建将由不同平台上的多个内部客户端系统使用的服务(中间层、.net,提供数据抽象和一些业务逻辑)。例如。一个客户端可能是一个网站,另一个客户端可能是一些 java 代码,另一个客户端是 C#,等等。
我想在我的服务中提供同步和异步 API,例如GetData、BeginGetData、EndGetData 方法。我还希望客户能够注册新“数据”添加到系统的通知。过去,我使用带有 Tibco EMS 通知 channel 的 Web 服务来实现这一点。
我的问题是:我能否通过公开 WCF 服务来实现三个要求(同步、异步和发布/订阅)?非 WCF 客户端可以使用此服务吗?
请原谅这个问题含糊不清 - 我可以根据需要详细说明。
提前致谢。
最佳答案
方法默认是同步的。要使它们异步,您需要添加此属性 [OperationContract(AsyncPattern=true)] 并返回一个 IAsynchResult,就像您在 winforms 中执行 BeginIvoke() 一样。 (在这里阅读更多 http://msdn.microsoft.com/en-us/library/ms734701.aspx )
您可以使用称为回调契约(Contract)的东西进行发布/订阅(尽管我不确定是否在其他平台上实现它)我对这些没有太多经验,但它们似乎并不复杂(您可以阅读更多这里 http://dotnetaddict.dotnetdevelopersjournal.com/wcf_alarmclock.htm )
关于c# - 初学者 WCF 问题 - 可消费的异步服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/353383/