3
ninjects 컨텍스트 바인딩 기능을 사용하여 메소드에 전달 된 enum 매개 변수의 값에 기반한 인터페이스의 올바른 구현에 바인드하려고하는데, 막혔습니다. 메타 데이터를 사용하여이 작업을 수행 할 수 있다고 생각했습니다. 여기 내가 시도한 것과 작동하지 않는 것이 있습니다.메소드의 매개 변수 값에 기반한 객체 지향 컨텍스트 바인딩
enum Colors
{
Red,
Blue
}
public interface IColor
{}
public class Red : IColor
{}
public class Blue : IColor
{}
class Test
{
private readonly StandardKernel _kernal;
public Test()
{
_kernal = new StandardKernel();
_kernal.Bind<IColor>().To<Red>().WithMetadata("color", Colors.Red);
_kernal.Bind<IColor>().To<Blue>().WithMetadata("color", Colors.Blue);
}
public void TestMethod(Colors color)
{
IColor iColor = _kernal.Get<IColor>(m => m.Get<Colors>("color") == color);
}
}
의견이 있으십니까? 감사합니다
이 기능은 저에게 효과적입니다. 문제가 정확히 무엇입니까? –
실제로 무슨 일이 일어나는지 설명하십시오. 그것은 예외를 던지고 있습니까? –
질문이 현재 양식에서 답할 수없고 OP의 어떤 종류의 응답도 없었기 때문에 투표를 종료합니다. – Aaronaught