C# 动态添加条件,而无需每次重新部署

C# 动态添加条件,而无需每次重新部署,c#,C#,我用c#编写了一小段windows服务代码,如下所示: bool status = assign value based on some logic above; if ( status == "A" || status == "B" ) { DoSomething(); } else { DoSomethingElse(); } 变量状态可以有从A到Z的值。从现在起,如果值是A或B,则调用DoSomething()方法。如果明天出现状态C的要求,我必须调用此方法,我必须更改

我用c#编写了一小段windows服务代码,如下所示:

bool status = assign value based on some logic above;

if ( status == "A" || status == "B" )
{
    DoSomething();
}
else
{
    DoSomethingElse();
}
变量状态可以有从A到Z的值。从现在起,如果值是
A
B
,则调用
DoSomething()
方法。如果明天出现状态
C
的要求,我必须调用此方法,我必须更改代码如下:

if ( status == "A" || status == "B" || status == "C" )
{
    DoSomething();
}
else
{
    DoSomethingElse();
}
因此,每次需求发生变化时,我都需要更改if条件,构建和部署它,这需要时间。是否有一种方法可以像在配置文件或任何其他文件中一样动态配置它,在配置文件或任何其他文件中,我只需添加新状态,它就会动态选择。我只需要重新启动服务,而不是每次都部署它


这对我很有帮助。谢谢

您有几种可能:

可以从文件(.xml/.txt/.ini/…)或数据库或其他类型的存储中读取状态值,然后检查以下内容:

List<string> statusList = ReadStatus();
if(statusList.Contains(status))
   DoSomething();
else
  DoSomethingElse();
List statusList=ReadStatus();
if(statusList.Contains(status))
DoSomething();
其他的
DoSomethingElse();

您有几种可能:

可以从文件(.xml/.txt/.ini/…)或数据库或其他类型的存储中读取状态值,然后检查以下内容:

List<string> statusList = ReadStatus();
if(statusList.Contains(status))
   DoSomething();
else
  DoSomethingElse();
List statusList=ReadStatus();
if(statusList.Contains(status))
DoSomething();
其他的
DoSomethingElse();

正如其他人所指出的,您可以简单地拥有一个txt/json/任何类型的文件来存储您的状态值

如果需要,还可以利用
FileSystemWatcher
,以便在文件更改时收到通知。这样,当状态集合发生变化时,您无需重新启动应用程序


ref:

正如其他人所指出的,您可以简单地拥有一个txt/json/任何类型的文件来存储状态值

如果需要,还可以利用
FileSystemWatcher
,以便在文件更改时收到通知。这样,当状态集合发生变化时,您无需重新启动应用程序


ref:

“有没有一种方法可以像配置文件或任何其他文件那样动态配置它”答案在这句话中,我不明白为什么这是一个问题。创建一个Windows工作流并将其部署为工件。“有没有一种方法可以像配置文件或任何其他文件那样动态配置它”答案在这句话中,我不明白为什么这是一个问题。创建一个Windows工作流并将其作为工件部署。