CustomDependencyDescriptor
using Castle.Core;
using Castle.Core.Internal;
using Castle.MicroKernel.Registration;
using System.Collections.Generic;
namespace Castle.MicroKernel.ModelBuilder.Descriptors
{
public class CustomDependencyDescriptor : IComponentModelDescriptor
{
private readonly Arguments arguments;
private readonly Property[] properties;
public CustomDependencyDescriptor(Arguments arguments)
{
this.arguments = arguments;
}
public CustomDependencyDescriptor(params Property[] properties)
{
this.properties = properties;
}
public void BuildComponentModel(IKernel kernel, ComponentModel model)
{
}
public void ConfigureComponentModel(IKernel kernel, ComponentModel model)
{
if (arguments != null) {
foreach (KeyValuePair<object, object> argument in arguments) {
model.CustomDependencies[argument.Key] = argument.Value;
}
}
if (properties != null)
properties.ForEach(delegate(Property p) {
model.CustomDependencies[p.Key] = p.Value;
});
}
}
}