C# 在内存中保留配置文件值,以便在整个应用程序中使用

C# 在内存中保留配置文件值,以便在整个应用程序中使用,c#,.net,windows-services,C#,.net,Windows Services,我有一个windows服务,它定期调用一些wcf服务,比如每5分钟调用一次 所以每5分钟,当代码到达我需要调用WCF服务的地方时,我需要从配置中读取一些值。我在WCF服务上有4个不同的操作,每5分钟从windows服务调用一次,所有4个都试图从配置文件中读取不同的密钥 我试图做的是,在服务启动时读取所有这些配置,并将它们保留在内存中,以便在需要时使用它 我正计划这样做:- 使用所需数量的静态变量创建静态类 从OnStart()方法调用静态类中的方法来设置上述变量 并在需要时使用静态字段 方法正确

我有一个windows服务,它定期调用一些wcf服务,比如每5分钟调用一次

所以每5分钟,当代码到达我需要调用WCF服务的地方时,我需要从配置中读取一些值。我在WCF服务上有4个不同的操作,每5分钟从windows服务调用一次,所有4个都试图从配置文件中读取不同的密钥

我试图做的是,在服务启动时读取所有这些配置,并将它们保留在内存中,以便在需要时使用它

我正计划这样做:-

  • 使用所需数量的静态变量创建静态类
  • 从OnStart()方法调用静态类中的方法来设置上述变量
  • 并在需要时使用静态字段
  • 方法正确吗

    谢谢
    我相信你的方法是正确的。但是我认为应该将配置值存储在db中,并从service init读取到静态属性中。因此,如果经常更改配置,您可以轻松地更改db值,而无需进行任何部署/配置更改。

    有几十种方法可以做到这一点。如果你的问题只是“这行吗?”,那么答案是肯定的。但我总是有点怀疑使用“静态”作为懒人将数据传播到程序多个部分的方法。通常,只需一点点额外的工作,就可以创建一个基于实例化非静态对象并将对该对象的引用复制到需要它的地方的解决方案,当将来需要更改时,此解决方案将更加灵活和可扩展。如果您在本地存储配置值,则只需使用提供的函数Settings.Default。而不是创建另一个静态类