AbstractPropertyDescriptor
using Castle.Core;
using Castle.Core.Configuration;
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 configuration = EnsureParametersConfiguration(model);
MutableConfiguration item = new MutableConfiguration(name) {
Children = {
value
}
};
configuration.Children.Add(item);
}
protected void AddParameter(ComponentModel model, string name, string value)
{
EnsureParametersConfiguration(model).Children.Add(new MutableConfiguration(name, value));
}
private IConfiguration EnsureParametersConfiguration(ComponentModel model)
{
IConfiguration configuration = model.Configuration.Children["parameters"];
if (configuration == null) {
configuration = new MutableConfiguration("parameters");
model.Configuration.Children.Add(configuration);
}
return configuration;
}
}
}