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

标签 c# windows-services timer

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

最佳答案

在最简单的层面上:当您调用 ServiceBase.Run 时,您可以为其提供要执行的服务实例。只需将其声明为您服务的公共(public)属性,并在调用 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;
    }

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

关于c# - 如何以编程方式将参数传递给 Windows 服务的 OnStart 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584913/

相关文章:

c# - Console.Out.Write() 在哪里获取 Windows 服务?

.net - 十进制作为主键在 Dev (Win7/64bit) 中有效,但在生产中无效 (Win2008R2/64bit) 公共(public)语言运行时检测到无效程序

java - 从另一个线程内调用 TimerTask 是线程安全的

android - 检查 CountDownTimer 是否正在运行

c# - 当系统处于休眠状态时,Windows 服务中的计时器如何运行?

c# - 如何使用 Quartz.NET 在数据库中插入 JOB/TRIGGER?

c# - 如何在 DDD 中对聚合建模并持久化到数据库

c# - 首先使用 Winforms 和 EF 4.1 代码进行数据绑定(bind)

c# - 在 Windows 上,ManifestEmbeddedFileProvider() 抛出异常

.net - 使用 SC.exe 或 InstallUtil.exe 安装 Windows 服务 - 有区别,但哪个?