來自Java背景,這就是我想的方式:如何返回能夠在服務器上執行的對象?
服務器向客戶端提供一個對象。這個對象應該能夠在服務器上執行。
服務器:
private string _S = "A";
public interface IFoo { void Bar(); }
private class Foo : IFoo {
void Bar() { _S = "B";}
}
public IFoo GetFoo() { return new Foo(); }
客戶:
IFoo foo = serverChannel.GetFoo();
foo.Bar();
Remoting是傳統的(大家一直指着WCF代替)和WCF不支持此在所有基本(WCF: Is there a way to return an object that is able to execute on the server?),所以我應該如何實現這種行爲?如果需要,可以使用第三方組件。
我搜索了SO,但沒有發現類似的問題。如果之前確實已經回答,請告訴我,我會刪除。
的確如此。至於技術 - 意思是「.NET Remoting」 - 然而,人們成功地開發了應用程序。爲了避免大部分混亂,有一些規則:沒有回調,只使用singlecall,沒有狀態共享,只在普通程序集中放置接口/消息聲明,在客戶代碼中遠程調用應該是顯而易見的......所以,最後我們只剩下爲我們的遠程應用程序定義簡單的數據消息類。它看起來很像一個WCF應用程序。 :-) –
沒錯。消息傳遞的作品,以及任何成功的網絡應用程序,除了微不足道的示例之外,將會看起來很像是在進行消息傳遞。 – kyoryu
+1有趣的觀點。我不知道Remoting似乎經常導致這類問題。 – mafu