ninject 당신이 코드에서이 같이 당신의 유형을 결합 할 수있다 :
으로 클래스를 장식하는 속성을 만들기 속성
this
에서 봐 가지고 사용 Ninject에 바인딩 상황에 대한
Bind<IWarrior>().To<Ninja>();
class ClimberNeeded : Attribute{}
주어진 컨텍스트를 사용하여 구현에 대한 인터페이스를 바운드 WhenClassHas
Bind<IWarrior>().To<Samurai>().WhenClassHas<ClimberNeeded>();
속성으로 클래스를 장식하십시오.
[ClimberNeeded]
class MountainousAttack {
[Inject]
IWarrior StandardMountainWarrior { get; set; }
}
여기
StandardMountainWarrior
대신
Ninja
의
Samurai
될 것입니다.
그런 다음이 autoregister을 가지고 더 나은됩니다 TinyIOC있다 : 또는 당신은 할 수 있습니다 : 당신이 당신의 유형을 해결하기 위해 영리 대표를 작성할 수 있습니다
container.Register<IMyInterface, MyImplementation>();
그리고 funq. 정말 부족한 문서입니다. 하지만 멋진 vidcast이 있습니다.
및 더 많은 물론. 예 : unity, structuremap 및 windsor은 모두 "코드 내"구성입니다.