.NETでアプリケーションドメイン間でオブジェクトをマーシャリングするとき(それはSerializable
属性を持っている場合)、CLRは、オブジェクトをシリアル化するか、または(それがMarshalByRef
を継承している場合)、それはプロキシを生成するCLRに、参照によってAppDomains間の不変オブジェクトをマーシャリングするように指示できますか?文字列で
CLRがちょうど通過するが新しいAppDomainへの文字列オブジェクトへの参照。 .NET文字列は不変であり、2番目のAppDomainによる文字列への変更が元のオブジェクトに影響を与えないため、CLRは依然として整合性を保証します。
これは私の質問につながります:私のカスタムタイプが不変であることをCLRに伝える方法はありますか?リモーティングで使用すると、文字列クラスと同じようにオブジェクトへの参照を渡すだけですか?
これが関連しているかどうかはわかりませんが、境界を越える前に文字列を固定していますか? –
ピンによって固定{}ブロックのような意味であれば、いいえ、ピニングはオブジェクト参照をアンマネージ領域に送るときにのみ使用されます。 – Yona