我在服务行为中使用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);
但是,我在两种情况下得到两个不同的对象(通过检查对象哈希码验证),而不是一个对象。
还有其他方法可以达到这个目的吗?