नोट
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप साइन इन करने या निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
इस पृष्ठ तक पहुंच के लिए प्राधिकरण की आवश्यकता होती है। आप निर्देशिकाएँ बदलने का प्रयास कर सकते हैं।
| Item | Value |
|---|---|
| RuleId | CA2238 |
| Category | Microsoft.Usage |
| Breaking change | Breaking - If the method is visible outside the assembly. Non-breaking - If the method is not visible outside the assembly. |
Cause
A method that handles a serialization event does not have the correct signature, return type, or visibility.
Rule description
A method is designated a serialization event handler by applying one of the following serialization event attributes:
System.Runtime.Serialization.OnDeserializedAttribute
Serialization event handlers take a single parameter of type System.Runtime.Serialization.StreamingContext, return
void, and haveprivatevisibility.
How to fix violations
To fix a violation of this rule, correct the signature, return type, or visibility of the serialization event handler.
When to suppress warnings
Do not suppress a warning from this rule.
Example
The following example shows correctly declared serialization event handlers.
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) {}
}
}
Related rules
CA2236: Call base class methods on ISerializable types
CA2240: Implement ISerializable correctly
CA2229: Implement serialization constructors
CA2235: Mark all non-serializable fields
CA2237: Mark ISerializable types with SerializableAttribute