どこでも Windsor を使用する MVC アプリケーションがあり、Windsor Castle ではどこでも正常に動作しますが、新しいコードを追加すると正しく動作しません。次のコードを使用して Castle を構成しました。
public void Install(IWindsorContainer container, IConfigurationStore store)
{
container.Register(Component.For<IFileUploadService>().ImplementedBy<FileUploadService>().DependsOn(Parameter.ForKey("x").Eq(
"test")).LifeStyle.PerWebRequest);
}
FileUploadService は次のように定義されています。
public class FileUploadService : IFileUploadService
{
public FileUploadService(string x)
{
// use x
}
}
インストーラー行が呼び出していることは確かです (Debug は、アプリケーションの開始時に行が実行されていることを示しています。
次のように定義されたコントローラーがあります。
public FileUploadController(IConfiguration Configuration, IFileUploadService fileUploadService)
{
this.Configuration = Configuration;
this.fileUploadService = fileUploadService;
}
このアプリケーションを実行すると、次のエラーが発生します。
Can't create component 'FileUploadService' as it has dependencies to be satisfied.
FileUploadService is waiting for the following dependencies:
Keys (components with specific keys)
- x which was not registered.
何が問題ですか?私は彼らが働いている同様のコードを持っています。