我正在编写一个带有单独核心类库的 Outlook 加载项。我正在尝试使用 Ioc 容器(Autofac),但是对于如何将 Outlook 会话注册为我的服务的依赖项,我有点迷茫。
我是DI新手。
在我的 ThisAddIn.cs 文件中,我在我的类库中实例化了一个引导程序:
public override void BeginInit()
{
_core = new AddInBootstrapper();
base.BeginInit();
}
AddInBootStrapper.cs 类在我的核心类库中。它的构造函数如下所示:
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;
}
我不确定如何以正确的方式连接它。我是否只是通过其构造函数将 Session 传递给 Bootstrapper 类,然后将其连接起来,还是有另一种/更好的方法?
_core = new AddInBootstrapper(this.Application.Session);