Castle Windsor ISubDependencyResolver を使用してパラメーターの名前を取得するのに少し問題があります。以下のようなコードがあり、Foo の場合、myBar.BarName を「Foo_myBar」にしたいと考えています。
Public Class Foo
{
private readonly IBar myBar;
Public Foo(IBar myBar){
this.myBar = myBar;
}
}
Public Class Bar: IBar
{
Public string BarName {get; private set;}
Public Bar(string barName){
BarName = barName;
}
}
public class BarNameResolver : ISubDependencyResolver
{
public bool CanResolve(CreationContext context,
ISubDependencyResolver contextHandlerResolver,
ComponentModel model,
DependencyModel dependency)
{
return context.RequestedType == typeof (IBar)
&& dependency.TargetType == typeof (string)
&& dependency.DependencyKey.Equals("barName");
}
public object Resolve(CreationContext context,
ISubDependencyResolver contextHandlerResolver,
ComponentModel model,
DependencyModel dependency)
{
return string.Format("{0}_{1}",
context.Handler.ComponentModel.Name,
**NameOfFooBarParameter**);
}
}
ISubDependencyResolver で「myBar」を取得する方法はありますか?
Foo に IBar の複数のインスタンスを異なる構成で含めるには、これが必要です。