Com 可见类型应该可以创建

更新:2007 年 11 月

TypeName

ComVisibleTypesShouldBeCreatable

CheckId

CA1409

类别

Microsoft.Interoperability

是否重大更改

原因

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

规则说明

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

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

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

如何修复冲突

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

何时禁止显示警告

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

相关规则

用 ComVisibleAttribute 标记程序集

请参见

概念

为互用性限定 .NET 类型

其他资源

与非托管代码交互操作