2013-10-28 2 views
2

을 변형하지 RegisterAll을내가 인터페이스를

System.ArgumentException :

container.RegisterAll<IDataHoldingSession<object>>(
    typeof(IDataHoldingSession<DbContext>), 
    typeof(IDataHoldingSession<PrincipalContext>)); 

그러나, 다음과 같은 예외와 함께 실패 : 제공된 유형 IDataHoldingSession<DbContext>IDataHoldingSession<Object>을 구현하지 않습니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

답변

1

발생하는 동작은 현재 Simple Injector 2.3 릴리스의 버그로 간주 될 수 있습니다. 우리는 2.4를 출시하기 위해 열심히 노력하고 있으며 앞으로 출시 될 2.4 버전에서이 문제를 해결할 것입니다. 프레임 워크에는 변형 유형을 확인하지 않는 위치가 더 있습니다.

container.RegisterAll(typeof(IDataHoldingSession<object>), 
    Lifestyle.Transient.CreateRegistration<IDataHoldingSession<object>>(
     () => container.GetInstance<IDataHoldingSession<string>>(), container), 
    Lifestyle.Transient.CreateRegistration<IDataHoldingSession<object>>(
     () => container.GetInstance<IDataHoldingSession<IPlugin>>(), container)); 

UPDATE

Simple Injector v2.4가 릴리스되었습니다

는 한편, 다음과 같은 해결 방법을 사용할 수 있습니다. 이 릴리스는이 버그를 수정합니다.

관련 문제