CA1409:Com 可见类型应该是可创建的

类型名

ComVisibleTypesShouldBeCreatable

CheckId

CA1409

类别

Microsoft.Interoperability

是否重大更改

非重大更改

原因

专门标记为对组件对象模型 (COM) 可见的某个引用类型包含公共的参数化构造函数,但不包含公共的默认(无参数)构造函数。

规则说明

没有公共默认构造函数的类型不能由 COM 客户端创建。 但是,如果可以使用其他方法创建该类型并将它传递到客户端(例如,通过某个方法调用的返回值),则 COM 客户端仍然可以访问该类型。

该规则忽略从 System.Delegate 派生的类型。

默认情况下,以下项对 COM 可见:程序集、公共类型、公共类型中的公共实例成员和公共值类型的所有成员。

如何解决冲突

要修复与该规则的冲突,请添加公共的默认构造函数或者从类型中移除 System.Runtime.InteropServices.ComVisibleAttribute

何时禁止显示警告

如果提供了其他方法来创建对象并将对象传递到 COM 客户端,则可以安全地禁止显示此规则发出的警告。

相关规则

CA1017:用 ComVisibleAttribute 标记程序集

请参见

概念

为互操作限定 .NET 类型

其他资源

与非托管代码交互操作