为什么以及何时应该让我的装配对Com Components可见?

时间:2016-06-23 08:41:18

标签: c# asp.net-mvc com

我有一个Mvc应用程序,我有这个选项:

// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components.  If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

我不知道这可以做什么,是安全设置吗?

何时选择ComVisible(false)和ComVisible(true)?

我搜索Com组件,了解它是什么,我找到了这个定义:

  

组件对象模型(COM)是一种二进制接口标准   微软在1993年推出的软件组件。它已经习惯了   启用进程间通信和动态对象创建   大量的编程语言。 COM是几个基础   其他Microsoft技术和框架,包括OLE,OLE   自动化,ActiveX,COM +,DCOM,Windows shell,DirectX,UMDF和   Windows运行时。

这对我来说意味着,Com组件是一种在应用程序之间进行通信的方式,但我不确定我对这个定义的理解是否严格。

你能用简单的词语(例子)告诉我,为什么以及何时应该使ComVisible(true)?

1 个答案:

答案 0 :(得分:7)

当您需要将程序集中的公共方法和函数公开给其他非.NET编写的应用程序时,可以将ComVisible属性设置为true,然后可以使用Microsoft的COM(一种绑定的标准化接口)使用程序集中的功能运行时的组件。

进一步阅读:https://blogs.msdn.microsoft.com/cristib/2012/10/31/how-com-works-how-to-build-a-com-visible-dll-in-c-net-call-it-from-vba-and-select-the-proper-classinterface-autodispatch-autodual-part12

示例:https://richnewman.wordpress.com/2007/04/15/a-beginner%E2%80%99s-guide-to-calling-a-net-library-from-excel