如何以编程方式将参数传递给Windows服务的OnStart方法?

时间:2009-02-25 06:17:49

标签: c# windows-services timer

我如何以编程方式将参数传递给服务的OnStart方法,我还需要将其传播到服务中的Timer的Elapsed事件?

2 个答案:

答案 0 :(得分:2)

在最简单的级别:当您调用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;
    }

您也可以使用服务args,但这来自外部调用者(服务注册) - 而不是以编程方式(根据问题)。

答案 1 :(得分:0)

您可以考虑让OnStart方法从配置文件中读取参数,并使用单独的应用程序以编程方式更新该参数。