Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使WCF服务支持多次回调?_C#_Wcf - Fatal编程技术网

C# 如何使WCF服务支持多次回调?

C# 如何使WCF服务支持多次回调?,c#,wcf,C#,Wcf,我有一个支持单一回调方法的nettcp-WCF服务 我想通过添加包含新方法的新接口来添加新的回调方法,而不破坏旧接口,因为还有其他东西依赖于旧接口 我尝试添加从旧接口继承的新接口,但客户端应用程序中的代理不包含旧回调接口 代码如下 interface IOldCallback { [OperationContract(IsOneWay = true)] void OnMethod1(int x); } interface INewCallback

我有一个支持单一回调方法的nettcp-WCF服务

我想通过添加包含新方法的新接口来添加新的回调方法,而不破坏旧接口,因为还有其他东西依赖于旧接口

我尝试添加从旧接口继承的新接口,但客户端应用程序中的代理不包含旧回调接口

代码如下

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);


}

您不能这样做-您最多可以有一个回调

您可以研究的是发布和订阅服务,在该服务中,您的源将发送一条消息,然后将该消息路由到订阅它的任何人。这将需要更多的细节,例如,对于本地场景,或者对于更面向互联网的“云中”解决方案,需要类似的细节

马克