CA1410: COM 登録メソッドは一致しなければなりません
TypeName |
ComRegistrationMethodsShouldBeMatched |
CheckId |
CA1410 |
[カテゴリ] |
Microsoft.Interoperability |
互換性に影響する変更点 |
なし |
原因
System.Runtime.InteropServices.ComRegisterFunctionAttribute 属性でマークされたメソッドが型で宣言されているが、System.Runtime.InteropServices.ComUnregisterFunctionAttribute 属性でマークされたメソッドが宣言されていません。または、その逆の状態になっています。
規則の説明
コンポーネント オブジェクト モデル (COM: Component Object Model) クライアントで .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 登録メソッドは参照可能であることはできません
参照
関連項目
System.Runtime.InteropServices.RegistrationServices