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 登録メソッドは参照可能であることはできません
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示