如何将WCF服务的操作契约拆分为单一和多个并发模式

时间:2011-10-11 06:19:27

标签: wcf concurrency singleton

我有一个服务A,有2个操作合同CheckServer和AddService。由于服务是单身,并且Concurrey模式为Single [ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Single)]

public Class Service : Iservice
{
   public bool CheckService()
    {
       //Checks server avilabality and returns bool value
    }

   public int AddService(int a, int b)
    {
      return int i = a + b;
    }
}

这里我的要求只允许使用一个AddService Instace,所以我将其设为singleton。现在CheckServvice不一定是Singleton所以我如何拆分这两个方法实现,使AddService成为singleton,CheckService为多个。

先谢谢

1 个答案:

答案 0 :(得分:2)

WCF无法提供您想要的内容。将该逻辑放在WCF之外并编写自己的同步逻辑。例如,实现单个类暴露CheckServiceAddService,其中同步将直接在AddService方法中,CheckService方法可以自由调用。

将标准WCF每次调用服务委托处理到您的单例类。