이전 고용주에서 Unity Unity를 처음 보았지만, Unity Unity를 처음으로 추가 할 때 Unity Unity가 효과적입니다. 결과적으로 나는 Unity v4.0.1을 사용하면서 천천히 테스트를하고 있습니다.Unity v4.0은 명시 적 등록없이 모든 종속성을 해결하는 것으로 보입니다.
간단한 종속성 그래프가있는 콘솔 응용 프로그램이 있습니다 : CommeesRepository에 종속되어있는 PayeeLogic에 종속 된 LoadPayees가 있습니다. 나는 하나의 방법은 매우 간단 유니티 등록 클래스를 만들었습니다
:
public class UnityRegistration
{
public static void RegisterCommissionsTypes(IUnityContainer container)
{
container.RegisterType<ILoadPayees, LoadPayees>();
}
}
한 해상도 문 : 어셈블리 클래스 LoadPayees로 확인
var processorInstance = (BaseTaskProcessor) container.Resolve(Type.GetType(classWithAssembly));
.
내가 PayeeLogic에 대한 loadPayees의 방법 인젝터를 만든:
[InjectionMethod]
public void Initialize(PayeeLogic payeeLogic)
{
this._payeeLogic = payeeLogic;
}
및 CommissionsRepository에 대한 PayeeLogic의 생성자 인젝터 :
private CommissionsRepository _commissionsDal;
public PayeeLogic(CommissionsRepository commissionsDal)
{
this._commissionsDal = commissionsDal;
}
이 난 다음에 그것을 기대 VS에서 디버깅을 만든 데 Unity와 함께 PayeeLogic 또는 CommissionsDAL을 명시 적으로 등록하지 않았으므로 null 참조 예외로 인해 파열됩니다. Unity를 사용하기 위해 수정하기 전에 전체 프로세스가 성공적으로 진행되었습니다.
그래서 바보 같거나 (가능성이 있습니다) 놓친 것일 수도 있고 Unity가 자동으로 LoadPayees의 모든 종속성을 자동으로 알아낼 수도 있습니다. 이는 예상 한 것과 다릅니다.
유니티 전문가들에게 내 질문은 이것들 중 어느 것입니까?
유니티는 등록없이 클래스를 해결할 수 있습니다. –
답변 해 주셔서 감사합니다. –