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