Ninject를 사용하여 종속성을 주입하고 있습니다. 다른 부동산과 함께 HasBilling, HasPayment 속성 - 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
Method()
이 공장 패턴을 사용하여 호출 : 매개 변수 HasBilling
이 true
에 같을 때
public interface IClassFactory
{
IClass CreateClass();
}
_classFactory.CreateClass().Method(....)
그럼 내가 HasPayment
true로 동일 유사 경우, Class1
구현의 Method()
를 호출해야 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