CA1409:COM 可見型別應該是可建立的
型別名稱 |
ComVisibleTypesShouldBeCreatable |
CheckId |
CA1409 |
分類 |
Microsoft.Interoperability |
中斷變更 |
中斷 |
原因
特別標示為元件物件模型 (Component Object Model,COM) 可見的參考型別 (Reference Type) 包含公用參數化建構函式,但不包含公用預設 (無參數) 建構函式。
規則描述
COM 用戶端無法建立沒有公用預設建構函式的型別。 不過,如果有其他方式可供建立型別並傳遞至用戶端 (例如,透過方法呼叫的傳回值),則 COM 用戶端仍可存取該型別。
此規則會忽略自 System.Delegate 衍生的型別。
根據預設,COM 可以看見下列各項:組件、公用型別、公用型別中的公用執行個體 (Instance) 成員,和公用實值型別的所有成員。
如何修正違規
若要修正此規則的違規情形,請新增公用預設建構函式 (Constructor),或移除型別的 System.Runtime.InteropServices.ComVisibleAttribute。
隱藏警告的時機
如果有建立及傳遞物件至 COM 用戶端的其他方式,則您可以放心地隱藏這項規則的警告。
相關規則
CA1017:以 ComVisibleAttribute 標記組件