다음을 통해 공유


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

항목
RuleId CA2238
범주 Microsoft.Usage
주요 변경 내용 호환성이 손상되는 변경 - 메서드가 어셈블리 외부에 표시되는 경우.

호환성이 손상되지 않는 변경 - 메서드가 어셈블리 외부에 표시되지 않는 경우.

원인

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

규칙 설명

메서드는 다음 serialization 이벤트 특성 중 하나를 적용하여 serialization 이벤트 처리기로 지정됩니다.

위반 문제를 해결하는 방법

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

경고를 표시하지 않는 경우

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

예시

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

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 생성자를 안전하게 하십시오.