共用方式為


CA1410:應該符合 COM 註冊方法

型別名稱

ComRegistrationMethodsShouldBeMatched

CheckId

CA1410

分類

Microsoft.Interoperability

中斷變更

中斷

原因

型別會宣告利用 System.Runtime.InteropServices.ComRegisterFunctionAttribute 屬性 (Attribute) 所標記的方法,但不會宣告利用 System.Runtime.InteropServices.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 (組件登錄工具)

System.Runtime.InteropServices.RegistrationServices

概念

向 COM 註冊組件