CA1409:Com 可见类型应该是可创建的
类型名 |
ComVisibleTypesShouldBeCreatable |
CheckId |
CA1409 |
类别 |
Microsoft.Interoperability |
是否重大更改 |
非重大更改 |
原因
专门标记为对组件对象模型 (COM) 可见的某个引用类型包含公共的参数化构造函数,但不包含公共的默认(无参数)构造函数。
规则说明
没有公共默认构造函数的类型不能由 COM 客户端创建。 但是,如果可以使用其他方法创建该类型并将它传递到客户端(例如,通过某个方法调用的返回值),则 COM 客户端仍然可以访问该类型。
该规则忽略从 System.Delegate 派生的类型。
默认情况下,以下项对 COM 可见:程序集、公共类型、公共类型中的公共实例成员和公共值类型的所有成员。
如何解决冲突
要修复与该规则的冲突,请添加公共的默认构造函数或者从类型中移除 System.Runtime.InteropServices.ComVisibleAttribute。
何时禁止显示警告
如果提供了其他方法来创建对象并将对象传递到 COM 客户端,则可以安全地禁止显示此规则发出的警告。
相关规则
CA1017:用 ComVisibleAttribute 标记程序集