CA2238: serialization 메서드를 올바르게 구현하십시오.
항목 | 값 |
---|---|
RuleId | CA2238 |
범주 | Microsoft.Usage |
주요 변경 내용 | 호환성이 손상되는 변경 - 메서드가 어셈블리 외부에 표시되는 경우. 호환성이 손상되지 않는 변경 - 메서드가 어셈블리 외부에 표시되지 않는 경우. |
원인
serialization 이벤트를 처리하는 메서드에 올바른 시그니처, 반환 형식 또는 노출 수준이 없습니다.
규칙 설명
메서드는 다음 serialization 이벤트 특성 중 하나를 적용하여 serialization 이벤트 처리기로 지정됩니다.
System.Runtime.Serialization.OnDeserializedAttribute
Serialization 이벤트 처리기는 System.Runtime.Serialization.StreamingContext 형식의 단일 매개 변수를 사용하고,
void
를 반환하며,private
표시 여부를 포함합니다.
위반 문제를 해결하는 방법
이 규칙 위반 문제를 해결하려면 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로 표시하십시오.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기