2011-09-26 9 views
1

私は、それを実装したインタフェース(OuterIntという名前を付けてください)とクラス(OuterClass)を持っています。インターフェイスOuterIntは、他のインターフェイス(InnerInt1、InnerInt2など)で構成されます。これらの内部インターフェイスを実装するいくつかのクラス(InnerClass1、InnerClass2など)があります。 (RemotingServices.Marshal(_OuterClass、 "myOuterInt");) 私の質問は、内部のクラスは、リモート処理中にシリアル化されるかどうか、アプリケーションのクライアント側が知っているかどうかです。それらのクラスについて(例えば、これらのクラスを使ったアセンブリの参照を持つなど)?私は私の質問を明示的に記述したいと思います。.NETリモーティングとシリアライザに関する質問

+0

Remotingは廃止されました。代わりにWCFを使用してください。 – Oded

+0

WCFは回避策の条件のために使用できません。 – Vasya

答えて

2

Remoting(これは、Odedノートのように、あまり使用されなくなりました)オブジェクトへのリモートフックを作成します。; API(インターフェース)ではありません。したがって、実際には両方の端に同じdll(具体的な型を含む)を持つ必要があります。シリアライズされているかどうかは、MarshalByRefObjectから継承されているかどうかによって異なります。しかし、典型的には、それがのオブジェクトグラフにある場合は、が終了したら、もう一方は作成可能でなければなりません。可能であれば、実質的に他の任意の実装、IMOを優先してください。

+0

私のばかげて申し訳ありませんが、 "オブジェクトグラフ"は何ですか? – Vasya

+0

@ Praetor12(それは愚かな質問ではありません;私がオブジェクトのインスタンスを送信した場合、自分自身を落とさないでください)、そのオブジェクトは他のものを見ることができます。到達可能なオブジェクトのセット全体がグラフになります。 Remotingは、直列化が必要なときには、見えるだけ送る 'BinaryFormatter'を使います。 –

+0

素早く簡単な答えをいただきありがとうございます。そんなやり方でリモーティングするなら、それは醜く不公平です。私はそれがメソッドやフィールドとプロパティの値を呼び出すだけのパラメータを送信し、リモートオブジェクトのみがシリアル化される必要があると思った。( – Vasya