Files
Umbraco-CMS/src/Umbraco.Core/Resolving/ResolverBase.cs
2012-07-26 07:52:13 -02:00

37 lines
931 B
C#

using System;
using System.Threading;
namespace Umbraco.Core.Resolving
{
public abstract class ResolverBase<TResolver>
{
static TResolver _resolver;
static readonly ReaderWriterLockSlim ResolversLock = new ReaderWriterLockSlim();
public static TResolver Current
{
get
{
using (new ReadLock(ResolversLock))
{
if (_resolver == null)
throw new InvalidOperationException("Current has not been initialized. You must initialize Current before trying to read it.");
return _resolver;
}
}
set
{
using (new WriteLock(ResolversLock))
{
if (value == null)
throw new ArgumentNullException("value");
if (_resolver != null)
throw new InvalidOperationException("Current has already been initialized. It is not possible to re-initialize Current once it has been initialized.");
_resolver = value;
}
}
}
}
}