2011-09-26 38 views
1

我有一個接口(讓它命名爲OuterInt)和一個實現它的類(OuterClass)。接口OuterInt由其他接口(InnerInt1,InnerInt2等)組成。還有一些實現這些內部接口的類(InnerClass1,InnerClass2等)。 OuterClass通過.NET遠程處理由應用程序的服務器端公開(RemotingServices.Marshal(_OuterClass,「myOuterInt」);) 我的問題是內部類是否在遠程處理過程中被序列化,應該客戶端應用程序知道關於這些類(例如參考這些類的彙編)?我希望我明確地描述了我的問題,如果不是的話 - 請在評論中問我。關於.NET遠程處理和序列化的問題

+0

遠程處理已過時 - 請改用WCF。 – Oded

+0

由於解決方法的條件,我無法使用WCF。 – Vasya

回答

2

遠程處理(也就是Oded筆記,幾乎不推薦使用)創建了一個遠程掛接到對象;不是API(接口)。因此,確實需要在兩端具有相同的dll(包含遠程具體類型)。它是序列化還是代理取決於它是否繼承自MarshalByRefObject。但通常情況下:如果它在對象圖一個結束,那麼它需要在另一個可創建。

如果可能,實際上更願意任何其他實施遠程處理,國際海事組織。

+0

對不起,我的愚蠢,但什麼是「對象圖」? – Vasya

+0

@ Praetor12(這不是一個愚蠢的問題,不要讓自己失望)如果我發送一個對象的實例,但該對象可以看到別的東西,它可以看到別的東西......等等;那麼整個可達對象集就是圖。遠程處理,當它需要序列化時,使用'BinaryFormatter',它將發送儘可能多的數據。 –

+0

感謝您的快速和簡單的答案馬克。如果以這種方式遠程處理 - 這是醜陋的和無效的。我認爲它只發送調用方法或字段和屬性值的參數,只有遠程處理對象需要序列化:( – Vasya