Как программно передать аргументы методу OnStart службы Windows? - PullRequest
2 голосов
/ 25 февраля 2009

Как программно передать аргументы методу OnStart Сервиса, который мне необходимо распространить на событие Elapsed Таймера внутри сервиса?

Ответы [ 2 ]

2 голосов
/ 25 февраля 2009

На самом простом уровне: когда вы вызываете ServiceBase.Run, вы можете передать ему экземпляры службы для выполнения. Просто объявите это как общедоступную собственность в вашем сервисе и назначьте до вызова Run:

        Service1 myService = new Service1();
        myService.SomeProp = 1;
        ServiceBase.Run(myService);

Тогда прочитайте SomeProp в вашем сервисе:

    public int SomeProp { get; set;}
    protected override void OnStart(string[] args)
    {
        int prop = SomeProp;
    }

Вы также можете использовать служебные аргументы, но это от внешнего абонента (регистрация службы) - не программно (по вопросу).

0 голосов
/ 25 февраля 2009

Вы можете рассмотреть возможность использования метода OnStart для чтения аргументов из файла конфигурации и программного обновления, используя либо отдельное приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...