다음을 통해 공유


CA2238: serialization 메서드를 올바르게 구현하십시오.

TypeName

ImplementSerializationMethodsCorrectly

CheckId

CA2238

범주

Microsoft.Usage

변경 수준

주요 변경 - 메서드가 어셈블리 외부에 표시되는 경우,

주요 변경 아님 - 메서드가 어셈블리 외부에 표시되지 않는 경우

원인

serialization 이벤트를 처리하는 메서드에 올바른 시그니처, 반환 형식 또는 노출 수준이 없습니다.

규칙 설명

다음의 serialization 이벤트 특성 중 하나를 적용하여 메서드를 serialization 이벤트로 지정합니다.

serialization 이벤트 처리기는 System.Runtime.Serialization.StreamingContext 형식의 단일 매개 변수를 사용하고, void를 반환하며, private 노출 수준을 가집니다.

위반 문제를 해결하는 방법

이 규칙 위반 문제를 해결하려면 serialization 이벤트 처리기의 시그너처, 반환 형식 또는 노출 수준을 수정합니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다.

예제

다음 예제에서는 올바르게 선언된 serialization 이벤트 처리기를 보여 줍니다.

Imports System
Imports System.Runtime.Serialization

Namespace UsageLibrary

   <SerializableAttribute> _ 
   Public Class SerializationEventHandlers

      <OnSerializingAttribute> _ 
      Private Sub OnSerializing(context As StreamingContext) 
      End Sub

      <OnSerializedAttribute> _ 
      Private Sub OnSerialized(context As StreamingContext) 
      End Sub

      <OnDeserializingAttribute> _ 
      Private Sub OnDeserializing(context As StreamingContext)
      End Sub

      <OnDeserializedAttribute> _ 
      Private Sub OnDeserialized(context As StreamingContext)
      End Sub

   End Class

End Namespace
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을 올바르게 구현하십시오.

CA2229: serialization 생성자를 구현하십시오.

CA2235: 모두 serialize할 수 없는 필드로 표시하십시오.

CA2237: ISerializable 형식을 SerializableAttribute로 표시하십시오.

CA2239: 선택적 필드에 deserialization 메서드를 제공하십시오.

CA2120: serialization 생성자를 안전하게 하십시오.