| 属性 | 值 |
|---|---|
| 规则 ID | CA1017 |
| 标题 | 用 ComVisibleAttribute 标记程序集 |
| 类别 | 设计 |
| 修复是中断修复还是非中断修复 | 非中断 |
| 在 .NET 9 中默认启用 | 否 |
原因
程序集没有已应用的 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 {}