별도의 핵심 클래스 라이브러리가있는 Outlook 추가 기능을 작성하고 있습니다. Ioc 컨테이너 (Autofac)를 사용하려고하지만 Outlook 서비스를 내 서비스의 종속성으로 등록하는 방법에 대해 약간 분실했습니다.종속성 삽입 (IoC)을 사용하는 Outlook 추가 기능
나는 DI 초보자입니다.
public override void BeginInit()
{
_core = new AddInBootstrapper();
base.BeginInit();
}
AddInBootStrapper.cs 클래스 내 핵심 클래스 라이브러리에 내 ThisAddIn.cs에서
내가 내 클래스 라이브러리에서 부트 스트 래퍼를 인스턴스화 파일.
public OutlookService(Microsoft.Office.Interop.Outlook.NameSpace session)
{
_session = session;
}
나는이를 배선하는 방법을 잘 모르겠어요 :
public AddInBootstrapper()
{
var containerBuilder = new ContainerBuilder();
containerBuilder.RegisterType<OutlookService>().As<IOutlookService>();
containerBuilder.RegisterType<EmailPrintService>().As<IPrintService<Microsoft.Office.Interop.Outlook.MailItem>>();
_container = containerBuilder.Build();
}
내 OutlookService 클래스는 Outlook 세션에 대한 종속성 (ThisAddIn.Application.Session)가 : 그 생성자는 지금처럼 보인다 올바른 방식. Session을 생성자를 통해 Session을 Bootstrapper 클래스로 전달한 다음 연결을 해제하거나 다른/더 좋은 방법이 있습니까?
_core = new AddInBootstrapper(this.Application.Session);
나는 이상적인 것이지만 작동하지 않는 것을 발견했습니다. 아래 참조 – raydenl