| 属性 | 值 |
|---|---|
| 规则 ID | CA1017 |
| 标题 | 用 ComVisibleAttribute 标记程序集 |
| 类别 | 设计 |
| 修复会引起中断还是不会引起中断 | 非中断 |
| 在 .NET 10 中默认启用 | 否 |
| 适用的语言 | C# 和 Visual Basic |
原因
程序集没有应用 System.Runtime.InteropServices.ComVisibleAttribute 属性。
规则说明
ComVisibleAttribute 属性确定 COM 客户端如何访问托管代码。 良好的设计原则要求程序集明确指出 COM 可见性。 可以为整个程序集设置 COM 可见性,然后对各个类型和类型成员覆盖其 COM 可见性。 如果此属性不存在,则程序集的内容对 COM 客户端可见。
如何解决违规
若要解决此规则的冲突,请将该属性添加到程序集。 如果你不希望程序集对 COM 客户端可见,请应用该属性并将其值设置为 false。
何时禁止显示警告
不要抑制此规则发出的警告。 如果希望程序集可见,请应用该属性并将其值设置为 true。
示例
下面的示例演示一个应用了 ComVisibleAttribute 属性的程序集,以防止其对 COM 客户端可见。
<Assembly: System.Runtime.InteropServices.ComVisible(False)>
Namespace DesignLibrary
End Namespace
[assembly: System.Runtime.InteropServices.ComVisible(false)]
namespace DesignLibrary {}