我可以在不使用Channel的情况下访问Service对象的同一实例吗?

时间:2015-06-10 10:38:06

标签: wcf singleton instances

我在服务行为中使用InstanceContextMode.Single加上我的服务也实现了单例模式。 如:

 private static readonly object padlock = new object();
 public static MySingletonService Instance
      {
          get
          {
              lock (padlock)
              {


                  if (_event == null)
                  {
                      _event = new MySingletonService();
                  }
                  return _event;
              }
          }
      }

现在,我这样做的原因是我想要访问相同的服务实例,无论调用是来自某个频道,还是某人只是简单地将其称为一个简单的类(两种情况都给出了代码片段)。 / p>

var channelFactory = new ChannelFactory<MySingletonService>(myBinding, myEndpoint);

             channelFactory.Open();
            using (channelFactory)
             {
            var channelclient = channelFactory.CreateChannel();
            channelclient.MethodCall(this);
               }

此外,

MySingletonService.Instance.MethodCall(this);

但是,我在两种情况下得到两个不同的对象(通过检查对象哈希码验证),而不是一个对象。

还有其他方法可以达到这个目的吗?

0 个答案:

没有答案