選択的シリアル化
クラスには、シリアル化できないフィールドが含まれていることがよくあります。たとえば、クラスのメンバ変数の 1 つに スレッド ID が格納されているとします。クラスを逆シリアル化すると、クラスのシリアル化時に格納された ID を持つスレッドが実行されなくなることがあります。この場合、ID 値をシリアル化しても意味はありません。メンバ変数に NonSerialized 属性を使用してマークすることで、メンバ変数がシリアル化されないようにすることができます。以下に例を示します。
[Serializable]
public class MyObject
{
public int n1;
[NonSerialized] public int n2;
public String str;
}
機密データを含むオブジェクトは、可能であれば、シリアル化できないようにしてください。オブジェクトをシリアル化する必要がある場合は、機密データを格納する特定のフィールドに NonSerialized 属性を適用します。これらのフィールドをシリアル化の対象から除外しない場合は、フィールドに格納されているデータがシリアル化の許可を持つ任意のコードに公開されることに注意する必要があります。安全なシリアル化コードの記述方法の詳細については、「セキュリティとシリアル化」を参照してください。
関連項目
その他の技術情報
バイナリ シリアル化
Remote Objects
XML シリアル化および SOAP シリアル化
Security and Serialization
Copyright © 2007 by Microsoft Corporation.All rights reserved.