유니티 컨테이너를 사용하고 있습니다. 클래스를 IOC 컨테이너에 등록했습니다. Auth 클래스의 인스턴스를 만들려고 할 때 다음 예외가 발생합니다. 예외 : InvalidOperationException - 현재 유형 인 log4net.ILog가 인터페이스이므로 생성 할 수 없습니다. 형식 매핑이 누락 되었습니까?예외는 다음과 같습니다. InvalidOperationException - 현재 유형 인 log4net.ILog가 인터페이스이며 구성 할 수 없습니다. 형식 매핑이 누락 되었습니까?
내가 잘못하고 계시다면 알려주십시오.
내 코드 :
using Unity;
Public Main()
{
private readonly IUnityContainer container;
public override void Instantiate()
{
container.RegisterSingleton<IAuthentication, Auth>("Auth");
}
public Authenticate()
{
var instance = container.Resolve<IAuthentication>("Auth");**//Getting exception here**
}
}
인증 클래스 :
public class Auth: IAuthentication
{
private readonly ILog log;
private IImpID impIDobj;
public Auth(ILog log, IImpID impIDobj)
{
this.impIDobj= impIDobj;
this.log = log;
}
public Auth()
: this(LogManager.GetLogger("Auth"), new CAuth())
{
}
public Authenticate()
{
impIDobj.Authenticate(data);
//Some logics
}
}
전체 예외 : 예외는 다음과 같습니다 InvalidOperationException이 - 현재 유형, log4net.ILog는 인터페이스이며, 구성 할 수 없습니다. 형식 매핑이 누락 되었습니까? 예외가 발생했을 때 컨테이너는 다음과 같습니다. Auth.IAuthentication 해결 (없음) Auth.IAuthentication, Auth 해결 ImpID.Auth, Auth 해결 매개 변수 'log'해결 중 생성자 ImID.Auth (log4net.ILog log, IImpID impIDobj) log4net.ILog, (none) –
해결 추가 정보가있는 경우 질문을 편집하고 주석에 넣지 마십시오. – juharr
로깅 구성 요소를 컨테이너에 어디에 등록 했습니까? – Amy