更新:2007 年 11 月
| TypeName | ImplementSerializationMethodsCorrectly | 
| CheckId | CA2238 | 
| 类别 | Microsoft.Usage | 
| 是否重大更改 | 是 - 如果该方法在程序集外部可见。 否 - 如果该方法在程序集外部不可见。 | 
原因
处理序列化事件的方法的签名、返回类型或可见性不正确。
规则说明
通过应用下列序列化事件属性之一,可以指定作为序列化事件处理程序的方法:
序列化事件处理程序获取 System.Runtime.Serialization.StreamingContext 类型的一个参数,返回 void,并具有 private 可见性。
如何修复冲突
要修复与该规则的冲突,请更正序列化事件处理程序的签名、返回类型或可见性。
何时禁止显示警告
不要禁止显示此规则发出的警告。
示例
下面的示例演示如何正确声明序列化事件处理程序。
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) {}
   }
}