IoCのCastle Windsorを使用しています。それは素晴らしい仕事をしていますが、私は自分のアプリケーションを実行しようと突然たびのすべてが、それはResolveAll
通話中に失敗した:Castle Windsor ResolveAllが型引数の例外で失敗する
System.ArgumentException occurred
Message=The number of generic arguments provided doesn't equal the arity of the generic type definition.
Parameter name: instantiation
Source=mscorlib
ParamName=instantiation
StackTrace:
at System.RuntimeType.MakeGenericType(Type[] instantiation)
at Castle.MicroKernel.Handlers.DefaultGenericHandler.ResolveCore(CreationContext context, Boolean requiresDecommission, Boolean instanceRequired) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel\Handlers\DefaultGenericHandler.cs:line 51
InnerException:
本当に奇妙なことがある:それは、この例外をスロー
var resolved = container.ResolveAll<IValidator>();
それは今日まで偉大な作業をしてきたことだ。先週に戻っても、これをやってみる前にバージョンに戻っても、私はまだこのエラーが出ます。私は再起動などを試みました誰もこれを見たことがありますか?
EDIT:
は、ここで私はIValidatorのものを登録しています方法は次のとおりです。
private void registerFromAssembly(IWindsorContainer container, Assembly assembly)
{
container.Register(
AllTypes.FromAssembly(assembly)
.BasedOn<IValidator>()
);
}
は、ここで私はIPresenterResolverサービスを登録しています方法は次のとおりです。
container.Register(
Component.For<IPresenterResolver>()
.ImplementedBy<CommandLineArgumentPresenterResolver>()
);
私は削除する必要がこれらの両方を使用して、今すぐアプリケーションを実行します。
エラーが言うように、サービスタイプと実装タイプ間の型パラメータ数の不一致があります。あなたは登録を投稿できますか? –
あなたはどのバージョンを使用しています –
@ Krzysztof Kozmic:Castle.Coreは2.5.1.2121、Castle.Windsorは2.5.1.2127です。私はちょうど最新の2.5.2を試しました、そして、それは同じ問題を抱えています。 –