在代码里边写"[ComVisible(true)]"和在工程属性里设置com可见,这两个有什么区别吗
在代码里面写[ComVisible(true)],和在工程属性里设置com可见,这两个有什么区别吗?我自己的代码里面如果
在代码里面写"[ComVisible(true)]",和在工程属性里设置com可见,这两个有什么区别吗?
我自己的代码里面如果不写[ComVisible(true)]这样的语句,而只在工程属性里面选择com可见(如下图),编译出来的dll也是可以被vc写的com客户端调用的。
问题是: 什么时候才需要显示的声明[ComVisible(true)]呢?我这里看到好像工程属性里面设置了,代码就不需要了啊?
还请高手指点!
[解决办法]实际上会在Properties节点下的AssemblyInfo.cs下添加[assembly: ComVisible(true)]
[解决办法]前者提供更精细的粒度,如果有些类型你不想公开的话。
[解决办法]在工程属性里设置的是全局的,表名该程序集的所有类都会COM可见(除非另外设置了[ComVisible(false)]。而在类的定义上加[ComVisible(true)],则代表这个类是COM可见的,不管工程属性有无设置COM可见性。