注册用于依赖注入的COM类型

问题描述 投票:0回答:1

我目前正在使用Visual Studio扩展,但是我很确定这应该适用于所有类型的应用程序。

我有一个SimpleInjector容器,我想在其中注册一个IVsSolution(COM对象)。请注意,它由以下属性标记:

IVsSolution

无论如何,我尝试遵循以下代码:

[ComImport]
[Guid("7F7CD0DB-91EF-49DC-9FA9-02D128515DD4")]
[ComConversionLoss]
[InterfaceType(1)]

它引发以下错误:

提供的类型var container = new Container(); container.RegisterInstance(IVsSolutionInstance); 无法实现__ComObject。参数名称:IVsSolution

我也想,这将适用于所有serviceType类型。无论如何,如何在首选的SimpleInjector容器中注册COM类型?

c# dependency-injection com vsix simple-injector
1个回答
1
投票

这是Simple Injector中的COMImport,可能在v5时间范围内已固定。

要变通解决此问题,请创建known limitation的包装实现,该实现包装__ComObject并将调用转发给该包装。

© www.soinside.com 2019 - 2024. All rights reserved.