C#Windows服务-从ini或App.config文件读取
我有一个Windows轮询服务,每10分钟发送一封自动电子邮件。我使用C#Windows服务-从ini或App.config文件读取,c#,windows-services,ini,C#,Windows Services,Ini,我有一个Windows轮询服务,每10分钟发送一封自动电子邮件。我使用Thread.Sleep(新的时间跨度(0,10,0))使线程休眠10分钟,这是目前硬编码的 为了避免硬编码,我尝试了App.config,但没有成功。我想将硬编码移到一些.ini文件中。如何从C#Windows服务读取.ini文件 编辑:我尝试从我的windows服务读取以下代码。 string pollingInterval=(string)new-appsetingsreader().GetValue(“pollingI
Thread.Sleep(新的时间跨度(0,10,0))
使线程休眠10分钟,这是目前硬编码的
为了避免硬编码,我尝试了
App.config
,但没有成功。我想将硬编码移到一些.ini
文件中。如何从C#Windows服务读取.ini
文件
编辑:我尝试从我的windows服务读取以下代码。
string pollingInterval=(string)new-appsetingsreader().GetValue(“pollingInterval”,typeof(string))代码>
给出以下错误<代码>配置系统无法使用App.config初始化
string interval = ConfigurationManager.AppSettings["interval"];
TimeSpan t;
TimeSpan.TryParseExact(interval, @"h\:m\:s", CultureInfo.InvariantCulture, out t);
(不要忘记添加参考System.Configuration
程序集和使用System.Configuration
+System.Globalization
)
您的App.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="interval" value="00:10:00" />
</appSettings>
</configuration>
app.config
是比INI文件更好的解决方案
您的app.config
文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
.......
<appSettings>
<add key="TimerInterval" value="10" />
</appSettings>
.......
</configuration>
您需要使用System.Configuration导入名称空间
代码>并添加对System.Configuration dll的引用。可能重复“我已尝试App.config
,但未成功”-为什么以及如何“未成功”?这通常是存储此类信息的首选方式。你读过吗?使用App.config有什么问题?旁注:您的任务听起来似乎可以通过从Windows任务调度器运行控制台应用程序而不是运行空闲的Windows服务来解决。
int timerInterval = Convert.ToInt32(ConfigurationManager.AppSettings["TimerInterval"]);