C# 如何使WCF服务支持多次回调?
我有一个支持单一回调方法的nettcp-WCF服务 我想通过添加包含新方法的新接口来添加新的回调方法,而不破坏旧接口,因为还有其他东西依赖于旧接口 我尝试添加从旧接口继承的新接口,但客户端应用程序中的代理不包含旧回调接口 代码如下C# 如何使WCF服务支持多次回调?,c#,wcf,C#,Wcf,我有一个支持单一回调方法的nettcp-WCF服务 我想通过添加包含新方法的新接口来添加新的回调方法,而不破坏旧接口,因为还有其他东西依赖于旧接口 我尝试添加从旧接口继承的新接口,但客户端应用程序中的代理不包含旧回调接口 代码如下 interface IOldCallback { [OperationContract(IsOneWay = true)] void OnMethod1(int x); } interface INewCallback
interface IOldCallback
{
[OperationContract(IsOneWay = true)]
void OnMethod1(int x);
}
interface INewCallback : IOldCallback
{
[OperationContract(IsOneWay = true)]
void OnMethod2(float x);
[OperationContract(IsOneWay = true)]
void OnMethod3(bool x);
}
[ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(INewCallback))]
public interface IMyService
{
}
附言
我制定了快速而肮脏的解决方案,这样我就不会破坏旧的客户端代码
interface INewCallback : IOldCallback
{
[OperationContract(IsOneWay = true)]
void OnMethod2(float x);
[OperationContract(IsOneWay = true)]
void OnMethod3(bool x);
[OperationContract(IsOneWay = true)]
new void OnMethod1(int x);
}
您不能这样做-您最多可以有一个回调 您可以研究的是发布和订阅服务,在该服务中,您的源将发送一条消息,然后将该消息路由到订阅它的任何人。这将需要更多的细节,例如,对于本地场景,或者对于更面向互联网的“云中”解决方案,需要类似的细节 马克