3

プロジェクトのクラスの多くがMissingSerializationConstructorRuleに違反しているというソナーレポートがありますが、クラスもその基本クラスもIserializableインターフェイスを実装していません。理由は誰にもわかりませんか?

たとえば、ソナーは次のように述べています。

public class CommentPage : RmdsPublicationPage, ICommentPage 
    { 
 *MissingSerializationConstructorRule    
 The required constructor for ISerializable is not present in this type.* 
    public CommentPage() 
    { 
        this["COMMENTTXT"] = null; 

対応するクラスは

public class CommentPage : RmdsPublicationPage, ICommentPage
{
    public CommentPage()
    {
        // do something
    }
    public void Update(string comment)
    {
        //something else
    }
}

2つのインターフェイスもISerializableを実装していません。

public class RmdsPublicationPage : Dictionary<string, object>, IRmdsPublicationPage

public interface IRmdsPublicationPage : IDictionary<string, object>, IDisposable
4

1 に答える 1

3

Dictionary(TKey、TValue)はISerializableを実装します

[SerializableAttribute]
[ComVisibleAttribute(false)]
public class Dictionary<TKey, TValue> : IDictionary<TKey, TValue>, 
    ICollection<KeyValuePair<TKey, TValue>>, IDictionary, ICollection, 
    IReadOnlyDictionary<TKey, TValue>, IReadOnlyCollection<KeyValuePair<TKey, TValue>>, 
    IEnumerable<KeyValuePair<TKey, TValue>>, IEnumerable, ISerializable, 
    IDeserializationCallback
于 2012-10-23T13:17:00.513 に答える