ArrayResolver
using Castle.Core;
namespace Castle.MicroKernel.Resolvers.SpecializedResolvers
{
public class ArrayResolver : ISubDependencyResolver
{
private readonly IKernel kernel;
public ArrayResolver(IKernel kernel)
{
this.kernel = kernel;
}
public object Resolve(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency)
{
return kernel.ResolveAll(dependency.get_TargetType().GetElementType(), null);
}
public bool CanResolve(CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency)
{
return (object)dependency.get_TargetType() != null && dependency.get_TargetType().IsArray && kernel.HasComponent(dependency.get_TargetType().GetElementType());
}
}
}