-1

我正在尝试将服务组件实现为单例。目前,我的代码是这样的:

[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 注册它。它显示在组件服务控制台中,并且看起来没问题。但是,当我在不同的应用程序中实例化它时,我似乎没有得到相同的实例。有什么想法吗?

4

1 回答 1

0

知道了!我收到了一个激活异常,因为我没有释放 (.Dispose(), = null) 我拥有的实例,因此其他进程无法获取对它的引用。

于 2015-09-10T08:34:35.427 回答