-
Notifications
You must be signed in to change notification settings - Fork 4
Gendarme.Rules.Serialization.CallBaseMethodsOnISerializableTypesRule(git)
Sebastien Pouliot edited this page Mar 2, 2011
·
1 revision
Assembly: Gendarme.Rules.Serialization
Version: git
This rule checks types that implement the System.ISerializable interface and fires if either the serialization constructor or the GetObjectData method does not call it's base type, potentially breaking the serialization process.
Bad example:
[Serializable]
public class Base : ISerializable {
// ...
}
[Serializable]
public class Bad : Base {
int value;
protected BadDerived (SerializationInfo info, StreamingContext context)
{
value = info.GetInt32 ("value");
}
public override void GetObjectData (SerializationInfo info, StreamingContext context)
{
info.AddValue ("value", value);
}
}
Good example:
[Serializable]
public class Base : ISerializable {
// ...
}
[Serializable]
public class Good : Base {
int value;
protected BadDerived (SerializationInfo info, StreamingContext context) : base (info, context)
{
value = info.GetInt32 ("value");
}
public override void GetObjectData (SerializationInfo info, StreamingContext context)
{
info.AddValue ("value", value);
base.GetObjectData (info, context);
}
}
- This rule is available since Gendarme 2.2
You can browse the latest source code of this rule on github.com
Note that this page was autogenerated (3/17/2011 1:55:44 PM) based on the xmldoc
comments inside the rules source code and cannot be edited from this wiki.
Please report any documentation errors, typos or suggestions to the
Gendarme Mailing List. Thanks!