首页 / C# / C#中COM接口的显式接口实现
C#中COM接口的显式接口实现
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#中COM接口的显式接口实现,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1103字,纯文字阅读大概需要2分钟。
内容图文
![C#中COM接口的显式接口实现](/upload/InfoBanner/zyjiaocheng/791/8d9aabb529e84852846d49e7a79da811.jpg)
有一段时间我以前正在研究用COM实现的旧Win32程序的主要重构,并且有各种各样的部分用C#(.NET)实现.在我参与这个项目的过程中,我遇到了一个关于C#中COM编程的Microsoft页面,它建议C#类显式实现COM接口,而不是隐含.我最近试图记住原因,但我不能.我也无法再次在MSDN网站上找到该页面.任何人都可以告诉我为什么微软可能会推荐这个?
解决方法:
嗯,这有点意义,COM是纯粹的基于接口的编程,并且应该隐藏接口的实际实现.实现接口方法显然会自动获取,因为它们不能公开.
实际上这样做是没有意义的,你可以(而且应该)简单地将[ClassInterface(ClassInterfaceType.None)]属性应用于类.这本身确保不暴露实现,只有类实现的接口是可见的.明确地实现接口方法实际上不够好.因为您无法隐藏您的类继承System.Object的事实.其中公开了Object的四个公共方法,并在类型库中引用了mscorlib.tlb,这是真正的COM客户端永远不会使用的引用.它几乎总是有效,因为使用你的类的编译器在没有安装.NET的机器上运行的几率非常小.但是非常令人讨厌,实际上并不是必需的.只有使用该类的机器才需要安装它.
只是不要这样做.声明您实现的接口,为它们提供[InterfaceType(ComInterfaceType.InterfaceIsDual)]属性,以允许它们在早期和晚期绑定时使用.并使用[ClassInterface(ClassInterfaceType.None)]隐藏它们的实际实现.只有明智的方式.
内容总结
以上是互联网集市为您收集整理的C#中COM接口的显式接口实现全部内容,希望文章能够帮你解决C#中COM接口的显式接口实现所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。