2010-04-16 31 views
0

我有2個應用程序A1和A2與它們之間的HttpChannel。還有從MarshalByRefObject繼承的2個類 - CObj1和CObj2。.NET Remoting - 關於RegisterWellKnownServiceType和激活遠程對象的問題

A1:

Cobj1 obj1 = new CObj1(); 

RemotingConfiguration.RegisterWellKnownServiceType(
        typeof(CObj1), "CObj1", WellKnownObjectMode.Singleton); 

A2:

Cobj2 obj2 = new CObj2(); 

string _url = string.Format("http://{0}:{1}/CObj1", host, port); 

CObj1 remObj1 = ((CObj1)(Activator.GetObject(typeof(CObj1), _url))); 

remObj1.Method1(obj2); 

的問題是:我可以在A1使用OBJ2之後呢?我是否需要任何RegisterWellKnown ...對於CObj2,即使我不需要通過Activator.GetObject獲取它?在那種情況下obj2被激活?

很抱歉,我自己找不到答案。

回答

0
  • 據我所知,你可以在服務器對象的方法 「方法一」使用 OBJ 2。你不需要激活任何種類的 。
  • 保持在對象-Obj2-是 在客戶端序列化,然後 然後在服務器上反序列化,所以 它不是完全相同的對象。
  • 對象上的更改可以是 來回複製(使用'ref')。

我希望這有助於