2

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

4

2 回答 2

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;
    }

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

于 2009-02-25T06:56:59.403 回答
0

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

于 2009-02-25T06:53:58.507 回答