I created some static utility methods that I use for caching objects.
public static class CacheProductView
{
static object _lock = new object();
static string _key = "product-view";
public static IEnumerable<Product> Select()
{
var obj = CacheObject;
if (obj == null)
{
lock (_lock)
{
obj = CacheObject;
if (obj == null)
{
obj = CreateCacheObject();
}
}
}
}
}
Here's a snippet of code from the method I use. As you can see, I use the classic .Net caching pattern, however I have a question regarding static variables inside static classes.
Is the static variable unique within the static class? For instance, if I clone the class and replace 'Product' for 'Order', will the _lock and _key objects, be scoped to the class or the application. Obviously, if the answer is the latter, giving unique names would be be needed.
All help and advice appreciated.