ComInterfaceType属性是否应该是InterfaceIsDual

时间:2012-05-01 13:35:00

标签: c# com

我正在托管代码C#中实现IDispatch接口。阅读文档(是的,我知道这是一个坏主意)它说我可以使用InterfaceIsDualInterfaceIsIDispatchInterfaceIsIUnknown。我希望我的界面是后期绑定所以我选择InterfaceIsDispatch ..但是更多的阅读表明InterfaceIsDual应该是相同的。选择Dual和Dispatch之间是否存在任何功能差异?

1 个答案:

答案 0 :(得分:4)

InterfaceIsDual支持早期和晚期绑定。这使得它非常适合COM客户端,它可以在早期绑定的速度和自动完成支持以及后期绑定的安全性之间做出选择。

安全方面是它在Microsoft文档中被淡化的原因,早期绑定到稍后更改的接口而没有相应的接口更改[Guid]产生非常难以诊断运行时错误。从访问冲突到调用错误的方法。 COM版本控制是一个大问题,为避免麻烦而遵循的硬规则经常被忽略,因为它们会引起痛苦。