我正在使用Ninject來注入依賴關係。 我有下面的類結構:C#Ninject參數綁定
public interface IClass
{
}
public class Class: IClass
{
public virtual void Method(Object context)
{
--------
}
}
public class Class1: IClass
{
public override void Method(Object context)
{
--------
}
}
public class Class2: IClass
{
public override void Method(Object context)
{
--------
}
}
context
包含 - HasBilling,HasPayment性質與其他更多的屬性一起。
Method()
通過使用工廠模式調用:
public interface IClassFactory
{
IClass CreateClass();
}
_classFactory.CreateClass().Method(....)
所以當參數HasBilling
等於true
然後我要引用的Class1
實施Method()
,同樣的,如果HasPayment
等於真正的Class2
實施Method()
必須調用。
使用Ninject綁定,我想這些綁定,但是沒有一個工作:
Bind<IClass>().To<Class1>().When(x => x.Target.Member.Name.Contains("HasBilling").Equals(true));
想這一點,但沒有運氣:
Bind<IClass>().To<Class1>().WithMetadata("HasBilling", true);
請能有人幫我什麼綁定需要設置爲基於參數值(HasBilling,HasPayment
)調用Class1
,Class2
方法(Method
)。
很多感謝,
感謝, WH