I have an extension method which uses some configuration settings. I've declared these as static
.
public static class Extensions
{
static string _mailServer = ConfigurationManager.AppSettings["MailServer"];
// ... etc
public static void SendEmailConfirmation(this IOrder order) { }
}
I just wanted to check that this is doing what I intend as I'm not 100% sure. The idea is that I don't want to have to keep reading these values, I'd like them to be read once and cached for the lifetime of the web application. Is this what will happen? Thanks
(updated with KeithS's clarification that they aren't read until first used)
They will be read the first time they are used, and then retained until the AppDomain is stopped or recycled, which is probably what you want.
That is, ASP.NET apps run inside an AppDomain. This is how they are resident and available to multiple requests without having to startup for each individual request. You can configure how long they live and when they recycle, etc. Static variables live and die with the app and thus will survive as long as the app is resident in the app domain.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With