いくつかのクラスが属性を使用していることがわかりました[Serializable]
。
- それは何ですか?
- いつ使えばいいですか?
- どのような特典が得られますか?
ベストアンサー1
それは何ですか?
.Net Framework アプリケーションでオブジェクトを作成する場合、データがメモリにどのように格納されるかを考える必要はありません。.Net Framework がそれを処理するためです。ただし、オブジェクトの内容をファイルに格納したり、オブジェクトを別のプロセスに送信したり、ネットワーク経由で転送したりする場合は、別の形式に変換する必要があるため、オブジェクトがどのように表現されるかを考える必要があります。この変換はシリアル化と呼ばれます。
シリアル化の用途
シリアル化により、開発者はオブジェクトの状態を保存し、必要に応じて再作成して、オブジェクトの保存とデータ交換を行うことができます。シリアル化により、開発者は Web サービスを使用してオブジェクトをリモート アプリケーションに送信する、オブジェクトをあるドメインから別のドメインに渡す、オブジェクトを XML 文字列としてファイアウォール経由で渡す、アプリケーション間でセキュリティやユーザー固有の情報を維持するなどのアクションを実行できます。
適用するSerializableAttribute
この型のインスタンスがシリアル化可能であることを示すために、型にSerializableAttribute
クラスがISerializable
シリアル化プロセスを制御するインターフェース。
型内のパブリックフィールドとプライベートフィールドのうち、SerializableAttribute
型がISerializable
シリアル化プロセスをオーバーライドするためのインターフェース。デフォルトのシリアル化プロセスでは、NonSerializedAttribute
シリアル化可能な型のフィールドに、特定の環境に固有のポインタ、ハンドル、またはその他のデータ構造が含まれており、異なる環境で意味のある形で再構成できない場合は、NonSerializedAttribute
その分野に。
見るマイクロソフト詳細については。
編集1
何かをシリアル化可能としてマークしない理由
データを転送または保存するときは、必要なデータのみを送信または保存する必要があります。そのため、転送の遅延やストレージの問題が少なくなります。そのため、シリアル化時に不要なデータ チャンクを除外できます。