, , , , :
1:
IConfiguration - Name - , :
container.Register(Component.For<IConfiguration>().ImplementedBy<Configuration>());
container.Register(Component
.For<Person>()
.DynamicParameters((DynamicParametersDelegate)ResolvePersonName));
void ResolvePersonName(IKernel kernel, IDictionary parameters)
{
parameters["name"] = kernel.Resolve<IConfiguration>().Name;
}
, Person, / Name /. Windsor . , , , :
.DynamicParameters((k,p) => p["name"] = k.Resolve<IConfiguration>().Name));
2:
Name , Windsor :
container.Register(
Component.For<Person>()
.DependsOn(Dependency.OnAppSettingsValue("name", "configSettingKeyName")));
3:
, , , . Person , , Person (?). :
factory:
public interface IPersonFactory
{
Person Create(string name);
}
, Person, factory :
public class PersonUser
{
public Personuser(IConfiguration configuration, IPersonFactory personFactory)
{
Person person = personFactory.Create(configuration.Name);
}
}
, :
container.AddFacility<TypedFactoryFacility>();
container.Register(Component.For<IPersonFactory>().AsFactory());