CA2238: シリアル化メソッドを正しく実装します
Item | [値] |
---|---|
規則 ID | CA2238 |
カテゴリ | Microsoft.Usage |
互換性に影響する変更点 | 中断あり - アセンブリの外部からメソッドを参照できる場合。 中断なし - アセンブリの外部からメソッドを参照できない場合。 |
原因
シリアル化イベントを処理するメソッドに、適切なシグネチャ、戻り値の型、または参照範囲がありません。
規則の説明
次のシリアル化イベント属性の 1 つを適用することで、メソッドがシリアル化イベント ハンドラーとして指名されます。
System.Runtime.Serialization.OnDeserializedAttribute
シリアル化イベント ハンドラーは、型 System.Runtime.Serialization.StreamingContext のパラメーターを 1 つ受け取り、
void
を返し、その参照可能範囲はprivate
となります。
違反の修正方法
この規則の違反を修正するには、シリアル化イベント ハンドラーの署名、戻り値の型、または参照可能範囲を修正します。
どのようなときに警告を抑制するか
この規則による警告は抑制しないでください。
例
次の例では、宣言されたシリアル化イベント ハンドラーが正しく表示されています。
using System;
using System.Runtime.Serialization;
namespace UsageLibrary
{
[SerializableAttribute]
public class SerializationEventHandlers
{
[OnSerializingAttribute]
void OnSerializing(StreamingContext context) {}
[OnSerializedAttribute]
void OnSerialized(StreamingContext context) {}
[OnDeserializingAttribute]
void OnDeserializing(StreamingContext context) {}
[OnDeserializedAttribute]
void OnDeserialized(StreamingContext context) {}
}
}
関連規則
CA2236: ISerializable 型で基本クラス メソッドを呼び出します
CA2240: ISerializable を正しく実装します
CA2235:すべてのシリアル化不可能なフィールドを設定します
CA2237:ISerializable 型を SerializableAttribute に設定します
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示