CA1017:用 ComVisibleAttribute 标记程序集
类型名 |
MarkAssembliesWithComVisible |
CheckId |
CA1017 |
类别 |
Microsoft.Design |
是否重大更改 |
非重大更改 |
原因
某程序集未应用 System.Runtime.InteropServices.ComVisibleAttribute 特性。
规则说明
ComVisibleAttribute 特性决定 COM 客户端如何访问托管代码。 合理的设计指出程序集将显式指示 COM 可见性。 可以设置整个程序集的 COM 可见性,然后重写各个类型和类型成员的 COM 可见性。 如果该特性不存在,则该程序集的内容对 COM 客户端可见。
如何解决冲突
要修复与该规则的冲突,请将该特性添加到程序集。 如果不希望对程序集对 COM 客户端可见,请应用该特性并将其值设置为 false。
何时禁止显示警告
不要禁止显示此规则发出的警告。 如果希望该程序集可见,请应用该特性,然后将其值设置为 true。
示例
下面的示例演示已应用 ComVisibleAttribute 特性而导致其对 COM 客户端不可见的程序集。
Imports System
<Assembly: System.Runtime.InteropServices.ComVisible(False)>
Namespace DesignLibrary
End Namespace
using System;
[assembly: System.Runtime.InteropServices.ComVisible(false)]
namespace DesignLibrary {}
using namespace System;
[assembly: System::Runtime::InteropServices::ComVisible(false)];
namespace DesignLibrary {}