HandlerExtensionsUtil
using Castle.Core;
using System;
using System.Collections.Generic;
namespace Castle.MicroKernel.Handlers
{
public static class HandlerExtensionsUtil
{
public static readonly string ReleaseExtensionsKey = "Castle.ReleaseExtensions";
public static readonly string ResolveExtensionsKey = "Castle.ResolveExtensions";
public static ICollection<IReleaseExtension> ReleaseExtensions(this ComponentModel model, bool ensureExists)
{
if (model == null)
throw new ArgumentNullException("model");
ICollection<IReleaseExtension> collection = model.ExtendedProperties[ReleaseExtensionsKey] as ICollection<IReleaseExtension>;
if ((collection == null) & ensureExists) {
collection = new HashSet<IReleaseExtension>();
model.ExtendedProperties[ReleaseExtensionsKey] = collection;
}
return collection;
}
public static ICollection<IResolveExtension> ResolveExtensions(this ComponentModel model, bool ensureExists)
{
if (model == null)
throw new ArgumentNullException("model");
ICollection<IResolveExtension> collection = model.ExtendedProperties[ResolveExtensionsKey] as ICollection<IResolveExtension>;
if ((collection == null) & ensureExists) {
collection = new HashSet<IResolveExtension>();
model.ExtendedProperties[ResolveExtensionsKey] = collection;
}
return collection;
}
}
}