我正在使用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