Updated all lookups to use new logging system. Updated lookups resolvers to use ManyObjectResolverBase

and are just adding the known resolvers on app startup and commented out the other resolver stuff for now.
Fixed up xpath statement for resolving the first document, site now renders :)
This commit is contained in:
shannon@ShandemVaio
2012-07-30 22:52:59 +06:00
parent 95451e99a7
commit ec22d985ef
23 changed files with 710 additions and 572 deletions

View File

@@ -0,0 +1,62 @@
using System;
namespace Umbraco.Core.Resolving
{
/// <summary>
/// A Resolver to return and set a Single registered object.
/// </summary>
/// <typeparam name="TResolver"></typeparam>
/// <typeparam name="TResolved"></typeparam>
/// <remarks>
/// Used for 'singly' registered objects. An example is like the MVC Controller Factory, only one exists application wide and it can
/// be get/set.
/// </remarks>
internal abstract class SingleObjectResolverBase<TResolver, TResolved> : ResolverBase<TResolver>
where TResolver : class
where TResolved : class
{
TResolved _resolved;
readonly bool _canBeNull;
protected SingleObjectResolverBase()
: this(false)
{ }
protected SingleObjectResolverBase(TResolved value)
: this(false)
{
_resolved = value;
}
protected SingleObjectResolverBase(bool canBeNull)
{
_canBeNull = canBeNull;
}
protected SingleObjectResolverBase(TResolved value, bool canBeNull)
{
_resolved = value;
_canBeNull = canBeNull;
}
/// <summary>
/// Gets/sets the value of the object
/// </summary>
protected TResolved Value
{
get
{
return _resolved;
}
set
{
Resolution.EnsureNotFrozen();
if (!_canBeNull && value == null)
throw new ArgumentNullException("value");
_resolved = value;
}
}
}
}