我正在尝试将服务组件实现为单例。目前,我的代码是这样的:
[assembly: ApplicationName("SingletonServicedComponent")]
[assembly: ApplicationActivation(ActivationOption.Server)]
[assembly: ApplicationAccessControl(false)]
[ComVisible(true)]
[JustInTimeActivation(true)]
[ComponentAccessControl(false)]
[ProgId("Singleton.ServicedComponent")]
[ObjectPooling(Enabled = true, MaxPoolSize = 1, MinPoolSize = 1, CreationTimeout = 5000)]
public sealed class SingletonServicedComponent : System.EnterpriseServices.ServicedComponent
{
private int value = 0;
protected override bool CanBePooled()
{
return true;
}
public int Increment()
{
return this.value++;
}
}
我遵循汇集它的模式,最小和最大实例计数为 1。我签署了我的程序集并使用 regasm 和 regsvcs 注册它。它显示在组件服务控制台中,并且看起来没问题。但是,当我在不同的应用程序中实例化它时,我似乎没有得到相同的实例。有什么想法吗?