c# - 初学者 WCF 问题 - 可消费的异步服务

标签 c# .net wcf soa

这是一个更像是“能否完成”的问题,而不是“如何完成”的问题。我正在考虑构建将由不同平台上的多个内部客户端系统使用的服务(中间层、.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/

相关文章:

wcf - Entity Framework 消耗大量内存(可能是内存泄漏?)

c# - 字体非常难看

c# - c++ 中是否存在来自 c# 的更准确的 Timers.Timer?

c# - FBRemoteEvent 使应用程序崩溃

c# - 在重载方法上使用泛型参数

.net - 一次从磁盘读取和写入大文件而不是小块的缺点?

c# - 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

wcf - WCF WebApi 如何将请求 URI 映射到适当的服务类型/操作?

wcf - 用户名密码验证器 : When DI and Framework collide

c# - Parallel.For 并获得下一个空闲线程/ worker