私はルールの集まりで引っ張って私のコントローラを設定したい問題に走ったが、私は私が設定IRule[]
の配列を持っていたので、それ自体で各ルールを一覧表示したくありませんでした。
コントローラー:
private readonly IRule[] _rules;
public HomeController(IRule[] rules)
{
_rules = rules;
}
インストーラ:
セットアップ城ウィンザーのインストーラ。
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Component.For<IRule>().ImplementedBy<ValidateNPIRule>());
container.Register(Component.For<IRule>().ImplementedBy<ValidateZipRule>());
}
重要な部分だったCollectionResolver
に追加.AddSubResolver
へのラインは、私は一度に私のルールのすべてを解決するために、インストーラのために必要なものだったと私は配列でそれらを引くことができます。
のGlobal.asax:
protected void Application_Start()
{
WindsorContainer container = new WindsorContainer();
container.Kernel.Resolver.AddSubResolver(new CollectionResolver(container.Kernel, true));
container.Install(FromAssembly.This());
}
だから、あなたの問題や解決策のこの部分ですか? – Marco
それは答えです。 – Sehab
これは、コンポーネントが既に登録されていることを示す例外を発生させます。 – Sinaesthetic