C#Windows服务-从ini或App.config文件读取

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

我有一个Windows轮询服务,每10分钟发送一封自动电子邮件。我使用
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"]);