AbstractPropertyDescriptor
using Castle.Core;
using Castle.Core.Configuration;
using System.Collections.Generic;
namespace Castle.MicroKernel.ModelBuilder.Descriptors
{
public abstract class AbstractPropertyDescriptor : IComponentModelDescriptor
{
public abstract void BuildComponentModel(IKernel kernel, ComponentModel model);
public virtual void ConfigureComponentModel(IKernel kernel, ComponentModel model)
{
}
protected void AddParameter(ComponentModel model, string name, IConfiguration value)
{
IConfiguration val = EnsureParametersConfiguration(model);
MutableConfiguration val2 = new MutableConfiguration(name);
((List<IConfiguration>)val2.get_Children()).Add(value);
((List<IConfiguration>)val.get_Children()).Add(val2);
}
protected void AddParameter(ComponentModel model, string name, string value)
{
IConfiguration val = EnsureParametersConfiguration(model);
((List<IConfiguration>)val.get_Children()).Add(new MutableConfiguration(name, value));
}
private IConfiguration EnsureParametersConfiguration(ComponentModel model)
{
IConfiguration val = model.Configuration.get_Children().get_Item("parameters");
if (val == null) {
val = new MutableConfiguration("parameters");
((List<IConfiguration>)model.Configuration.get_Children()).Add(val);
}
return val;
}
}
}