A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mdl 中级黑马   /  2013-5-18 15:20  /  1740 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在MSDN上的类声明中经常看到[ComVisibleAttribute(True)]类似这样的东西,请问这些是什么?它们属于C#语言的语法范围吗?

L}2BFI5%@([9VAIQME[1L(5.jpg (25.42 KB, 下载次数: 0)

L}2BFI5%@([9VAIQME[1L(5.jpg

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

3 个回复

正序浏览
作用是可将该特性应用于程序集、接口、类、结构、委托、枚举、字段、方法或属性。

默认为 true,指示该托管类型对 COM 是可见的。 使所有公共托管程序集及类型可见并不需要使用此特性;默认情况下,它们对 COM 是可见的。 只能使 public 类型可见。 而不能使用该特性使原本为 internal 或 protected 的类型对 COM 可见,也不能使不可见类型的成员可见。

如果对程序集将该特性设置为 false,将隐藏该程序集中的所有 public 类型。 通过将个别类型设置为 true,可以有选择地使程序集中的类型可见。 如果对于某个特定类型将该特性设置为 false,将隐藏该类型及其成员。 但如果某个类型是不可见的,则无法使该类型的成员可见。 如果对于某个类型将该特性设置为 false,可防止该类型被导出到类型库;不注册类;接口从不响应非托管 QueryInterface 调用。

除非将类及其成员显式设置为 false,否则,继承类将向 COM 公开原始类中不可见的基类成员。 例如,如果将 ClassA 设置为 false,而且不对其成员应用该特性,则该类及其成员对 COM 是不可见的。 但是,如果从 ClassA 派生 ClassB,并将 ClassB 导出到 COM,则 ClassA 的成员将成为 ClassB 的可见基类成员。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
当然属于c#,他们是特性,你可以百度一下特性。
一般你看到的以后缀为Attribute结尾的都是特性。他们都继承自Attribute,而Attribute又继承自Object
可以对类,方法等应用特性。
你可以把特性和反射学下。最近论坛里好多人多再问  反射

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
1. ComVisibleAttribute类微软的解释是控制程序集中个别托管类型、成员或所有类型对 COM 的可访问性;
2. 在项目中添加[ComVisibleAttribute(true)],这是为了将该类设置为com可访问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马