CA1410: COM 登録メソッドは一致しなければなりません

Item [値]
規則 ID CA1410
カテゴリ Microsoft.Interoperability
互換性に影響する変更点 なし

原因

型では、System.Runtime.InteropServices.ComRegisterFunctionAttribute 属性でマークされたメソッドが宣言されていますが、System.Runtime.InteropServices.ComUnregisterFunctionAttribute 属性でマークされたメソッドが宣言されていません (またはその逆)。

規則の説明

コンポーネント オブジェクト モデル (COM) クライアントで .NET の型を作成する場合は、その型を最初に登録する必要があります。 使用可能な場合は、ユーザー指定のコードを実行するための登録プロセス中に、ComRegisterFunctionAttribute 属性でマークされたメソッドが呼び出されます。 登録メソッドの操作を元に戻すための登録解除プロセス中に、ComUnregisterFunctionAttribute 属性でマークされた対応するメソッドが呼び出されます。

違反の修正方法

この規則違反を修正するには、対応する登録メソッドまたは登録解除メソッドを追加します。

どのようなときに警告を抑制するか

この規則による警告は抑制しないでください。

次の例は、規則に違反する型を示しています。 コメント化されたコードは、違反の修正方法を示しています。

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 登録メソッドは参照可能であることはできません

関連項目