CA2238:正确实现序列化方法

“值”
RuleId CA2238
Category Microsoft.Usage
重大更改 中断 - 如果方法在程序集外部可见。

非中断 - 如果方法在程序集外部不可见。

原因

处理序列化事件的方法的签名、返回类型或可见性不正确。

规则说明

通过应用以下序列化事件属性之一,将方法指定为序列化事件处理程序:

如何解决冲突

若要解决此规则的冲突,请更正序列化事件处理程序的签名、返回类型或可见性。

何时禁止显示警告

不禁止显示此规则发出的警告。

示例

下面的示例演示的是正确声明的序列化事件处理程序。

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:实现序列化构造函数

CA2235:标记所有不可序列化的字段

CA2237:用 SerializableAttribute 标记 ISerializable 类型

CA2239:为可选字段提供反序列化方法

CA2120:保护序列化构造函数