2012-01-10 10 views
3

私はAppDomainsを使用する最初のプロジェクトに取り組んでいます。オブジェクトがMarshalByRefObjectから派生し、[Serializable]とマークされているとどうなるのでしょうか?例えばオブジェクトがMarshalByRefObjectから派生し、[Serializable]とマークされている場合はどうなりますか?

[Serializable] 
public class DummyClass: MarshalByRefObject 
{ 

} 
+0

シリアル化可能になりますか?何が起こるのですか?これら2つの項目のドキュメントを読んだことがありますか? –

+2

@CodyGray:「何が起こるのですか? .NETリモーティングに精通しているわけではありません。 – leppie

+2

@Ravi:私は小さなサーバーのシナリオを設定してテストするのが最善だと思います。おそらく、 'MarshalByRefObject'から派生しているのは、' 'veto ''です。 – leppie

答えて

1

これは参照により整列化されますが、それでもシリアル化するための他のユースケースのためにシリアライズすることができます。リモーティングのためにシリアライズしているフォーマッタはSurrogateSelectorを使用します。これは、そのシリアライズのためにプロキシを生成するため、シリアライズは依然として参照によってマーシャリングされます。他のシリアル化の使用にはSurrogateSelectorが含まれていないため、そのような効果はありません。

+0

ここでマーシャルされた意味は何ですか、あなたは詳しく教えてください。 –

+0

@EhsanSajjadは、この質問と回答に対するコメントよりも別の質問です。 http://stackoverflow.com/questions/5600761/what-is-marshalling-what-is-happening-when-something-is-marshalledでおそらく複製され、確かにグーグルで答える必要があります。 –

+0

私はほんの数秒前に尋ねました:http://stackoverflow.com/questions/34295644/what-does-actually-marshalbyref-means –

関連する問題