Share via


選択的シリアル化

クラスには、シリアル化できないフィールドが含まれていることがよくあります。たとえば、クラスのメンバ変数の 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

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.