2013-11-28 40 views
0

當由如何在服務器中獲取對象的引用?

RemotingConfiguration.RegisterWellKnownServiceType(typeof(Interfaces.client), Singleton", WellKnownObjectMode.Singleton); //in the server 

登記在服務器中的對象,然後通過

Interfaces.client mgr = (Interfaces.client)(Activator.GetObject(typeof(Interfaces.client), "tcp://localhost:1234/Singleton")); //in the client 

檢索它在客戶端,使得對象可以從客戶端訪問,我們可以看到在服務器端的修改,這已經完成了。 我的具體問題是:在服務器創建後,哪裏可以找到對象的引用?如果是單播模式,我知道會有幾個實例,儘管我假設實例是通過一些命名服務宏觀存儲的,或者直接存儲在內存中的某個列表中。 請原諒我弱英語

回答

1

您將需要單獨創建對象,然後封送它,而不是使用RegisterWellKnownServiceType:

Foo foo = new Foo();

RemotingServices.Marshal(foo, "Singleton");

所以客戶端的更改將在服務器端反映在foo對象中。

+0

這樣,就不可能在singlelecall模式下注冊對象(每次調用一個實例) –

+0

@initParam這是正確的,它僅適用於單例模式。單個呼叫實例的生存時間應儘可能短。如果你需要訪問單個調用實例服務器端,那麼你的設計是錯誤的。 –

相關問題