ユニティコンテナを使用しています.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の解決 コンストラクタImID.Auth(log4net.ILog log、IImpID impIDobj) log4net.ILogの解決(none) –
追加情報がある場合は、質問を編集し、コメントには入れないでください。 – juharr
ロギングコンポーネントはどこに登録しましたか? – Amy