この本CLR Via C#
は、バイナリー・シリアライゼーションを介してオブジェクトを複製する簡単な方法を示しています。
StreamingContextStates.Clone
作成時に次のBinaryFormatter
ように指定します。
var formatter = new BinaryFormatter
{
Context = new StreamingContext(StreamingContextStates.Clone)
};
のドキュメントにStreamingContextStates.Clone
は、
オブジェクト グラフが複製されることを指定します。ユーザーは、複製されたグラフが同じプロセス内に引き続き存在し、アンマネージ リソースへのハンドルまたはその他の参照に安全にアクセスできると想定できます。
十分に公平ですが、これが実際に何を意味するのかはよくわかりません。これは実際に の動作をどのように変更しBinaryFormatter
ますか? このフラグを使用した場合の具体的な効果を挙げられる人はいますか?