ParametersDescriptor
using Castle.Core;
using Castle.MicroKernel.Registration;
using System;
namespace Castle.MicroKernel.ModelBuilder.Descriptors
{
public class ParametersDescriptor : AbstractPropertyDescriptor
{
private readonly Parameter[] parameters;
public ParametersDescriptor(params Parameter[] parameters)
{
this.parameters = parameters;
}
public override void BuildComponentModel(IKernel kernel, ComponentModel model)
{
Array.ForEach(parameters, delegate(Parameter p) {
Apply(model, p);
});
}
private void Apply(ComponentModel model, Parameter parameter)
{
if (parameter.Value != null)
AddParameter(model, parameter.Key, parameter.Value);
else if ((object)parameter.ConfigNode != null) {
AddParameter(model, parameter.Key, parameter.ConfigNode);
}
}
}
}