我有一个使用一些配置设置的扩展方法.我已经声明为静态.
public static class Extensions { static string _mailServer = ConfigurationManager.AppSettings["MailServer"]; // ... etc public static void SendEmailConfirmation(this IOrder order) { } }
我只是想检查一下,这是做我想要的,因为我不是100%肯定.这个想法是,我不想继续阅读这些值,我希望他们读取一次,并在Web应用程序的一生中进行缓存.这是会发生什么事吗?谢谢
解决方法
(更新了KeithS的澄清,直到第一次使用它们才被读取)
他们将在第一次被使用时被读取,然后保留到AppDomain停止或回收,这可能是你想要的.
也就是说,ASP.NET应用程序在AppDomain中运行.这是他们是多个请求的驻留和可用,而不必为每个单独的请求启动.您可以配置他们的生活时间,回收时间等.静态变量与应用程序一起死亡,因此只要应用程序驻留在应用程序域中就可以生存.