別のコア クラス ライブラリを使用して Outlook アドインを作成しています。Ioc コンテナー (Autofac) を使用しようとしていますが、サービスの依存関係として Outlook セッションを登録する方法がわかりません。
DI初心者です。
ThisAddIn.cs ファイルでは、クラス ライブラリでブートストラップをインスタンス化します。
public override void BeginInit()
{
_core = new AddInBootstrapper();
base.BeginInit();
}
AddInBootStrapper.cs クラスは、Core クラス ライブラリにあります。そのコンストラクタは次のようになります。
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) に依存しています。
public OutlookService(Microsoft.Office.Interop.Outlook.NameSpace session)
{
_session = session;
}
これを正しい方法で配線する方法がわかりません。セッションをコンストラクターを介して Bootstrapper クラスに渡すだけですか、それとも別の/より良い方法がありますか?
_core = new AddInBootstrapper(this.Application.Session);