Tag: 简单注入器

parsingCOM互操作types时出现SimpleInjector ActivatorException

当试图从我的Simple Injector容器中parsing一个types时,它抛出了一个ActivatorException说我的types没有被注册,虽然我确信它已经被注册了。 ThisAddin.cs private void ThisAddIn_Startup(object sender, EventArgs e) { var container = new Container(); container.RegisterSingleton<Microsoft.Office.Interop.Excel.Application>(() => this.GetHostItem<Microsoft.Office.Interop.Excel.Application>( typeof(Microsoft.Office.Interop.Excel.Application), "Application")); var application = container.GetInstance<IApplicationAdapter>(); } 在另一个大会,在这种情况下ExcelInterface 。 ApplicationAdapter.cs internal class ApplicationAdapter : IApplicationAdapter { public Application(Microsoft.Office.Interop.Excel.Application excelApplication) { } } IApplicationAdapter.cs public interface IApplicationAdapter { } 但是,当涉及到解决Excel.Application我得到的exception: 所以试图debugging这个我以为它没有真正注册正确,但是当检查在容器中添加的注册,我可以看到Excel.Application已被添加: 我也检查,并100%确定这两个类是引用相同的Excel.Application程序集,他们是。 最后,我将Excel.Application实例添加到容器,但因为这是一个__COMObject我无法注册为Excel.Application 。 我完全不知道为什么Simple Injector无法正确parsing界面。