2015-09-10 2 views
-1

Я пытаюсь реализовать обслуживаемый компонент в качестве одноэлементного. В настоящее время мой код выглядит так:Singleton Serviced Component

[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. Он отображается в консоли «Службы компонентов» и отображается как «ОК». Однако, когда я создаю экземпляр в разных приложениях, я, похоже, не получаю тот же экземпляр. Любые мысли?

ответ

0

Получил это! Я получил исключение активации, потому что я не выпускал (.Dispose(), = null) экземпляр, который у меня был, поэтому другие процессы не смогли получить ссылку на него.

Смежные вопросы