みんな:
一部の使用クラスがシリアライズ可能をサポートしていないことを回避する方法を見ました。しかし、この方法を使用する理由がわかりません。そこで、ここで質問を投げかけました。
したがって、前のコードは次のようになります
[Serializable]
Class OutterClass
{
public UsingClass UsingClassMember
{
get;
set;
}
}
ここで、OutterClass をシリアライズしようとすると、UsingClass がシリアライズをサポートしていないため、例外が発生します。明らかに、OutterClass をシリアル化する場合は、OutterClass のすべてのメンバーがシリアル化をサポートする必要があります。
しかし、次のようにコードを変更すると。シリアル化操作は正常に実行できます。
[Serializable]
Class OutterClass
{
[NonSerialized]
private UsingClass m_UsingClassMember;
public UsingClass UsingClassMember
{
get { return m_UsingClassMember; };
set { m_UsingClassMember = value };
}
}
この変更の理由はわかりません。プロパティ UsingClassMember のシリアル化では、クラス UsingClass 自体をシリアル化する必要はないようです。誰か説明してもらえますか?
ありがとう!