共用方式為


CA1410:應該符合 COM 註冊方法

型別名稱

ComRegistrationMethodsShouldBeMatched

CheckId

CA1410

分類

Microsoft.Interoperability

中斷變更

中斷

原因

型別會宣告利用 ComRegisterFunctionAttribute 屬性 (Attribute) 所標記的方法,但不會宣告利用 ComUnregisterFunctionAttribute 屬性所標記的方法 (反之亦然)。

規則描述

若要使用元件物件模型 (COM) 用戶端建立 .NET Framework 型別,必須先註冊該型別。如果它可以使用,則會在註冊過程期間呼叫利用 ComRegisterFunctionAttribute 屬性所標記的方法,以執行使用者指定的程式碼。在移除註冊處理序期間,呼叫利用 ComUnregisterFunctionAttribute 屬性所標記的對應方法,取消註冊方法的作業。

如何修正違規

若要修正這個規則的違規情形,請加入對應的註冊或移除註冊方法。

隱藏警告的時機

請勿隱藏此規則的警告。

範例

下列範例顯示違反規則的型別。註解的程式碼會顯示違規的修正。

Imports System
Imports System.Runtime.InteropServices

<Assembly: ComVisibleAttribute(True)>
Namespace InteroperabilityLibrary

   Public Class ClassToRegister
   End Class 

   Public Class ComRegistration

      <ComRegisterFunctionAttribute> _ 
      Friend Shared Sub RegisterFunction(typeToRegister As Type)
      End Sub 

'      <ComUnregisterFunctionAttribute> _  
'      Friend Shared Sub UnregisterFunction(typeToRegister As Type) 
'      End Sub 

   End Class 

End Namespace
using System;
using System.Runtime.InteropServices;

[assembly: ComVisible(true)]
namespace InteroperabilityLibrary
{
   public class ClassToRegister
   {
   }

   public class ComRegistration
   {
      [ComRegisterFunction]
      internal static void RegisterFunction(Type typeToRegister) {}

//      [ComUnregisterFunction] 
//      internal static void UnregisterFunction(Type typeToRegister) {}
   }
}

相關規則

CA1411:COM 註冊方法不應該為可見的

請參閱

參考

Regasm.exe (組件登錄工具)

RegistrationServices

概念

向 COM 註冊組件