次の方法で共有


選択的シリアル化

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