2010-07-09 46 views
2

我一直在通過.NET Remoting Overview在http://msdn.microsoft.com/en-us/library/kwdt6w2k(v=VS.71).aspx上工作,我不明白幾件事情,希望有人能在這裏說明一些事情。不明白遠程處理激活

在構建基本.NET遠程處理遠程處理應用程序部分中,三個組件被描述:

  1. 一個遠程的類型,生活在一個類庫.DLL
  2. 主機的應用程序,與所述基準 遠程的型類庫
  3. 一個客戶端應用程序

    客戶端應用程序包含像(C#這裏)

    一個線

    RemotableType remotableObj = new RemotableType();

爲了編譯該行,客戶端應用程序必須具有對遠程類型類庫的引用......對吧?而且,如果它具有對該類型定義的此引用,那麼爲什麼不是該實例化RemotableType進程中的內容呢?我不明白如何在主機應用程序的應用程序域中加載RemotableType實例。

請指教(或直接我更入門參考?)

+3

遠程處理是遺留選項,並已被WCF所取代 - 如果您正在構建新的應用程序,最好使用WCF。 – Oded 2010-07-09 15:41:23

+0

還要注意您正在查看.NET 1.1文檔。除非使用.NET 1.1,否則應該使用http://msdn.microsoft.com/en-us/library/kwdt6w2k.aspx。 – 2010-07-09 16:14:45

+0

是的,我堅持使用.NET 1.1,但感謝提示。 – 2010-07-13 14:30:37

回答

1

是,客戶端必須包含遠程類的類型信息的程序集的引用。這裏的標準做法是創建一個單獨的程序集,其中只包含遠程類的接口。客戶端和服務器都引用程序集。服務器包含遠程類的實現,但客戶端只能看到該接口。

客戶端在服務器上實例化遠程對象的原因是由於app.config文件中包含的條目。

<configuration> 
    <system.runtime.remoting> 
     <application> 
     <client 
      url = "http://www.cpandl.com" 
      displayName="MyApplication" 
     > 
      <activated 
       type = "myClientActivatedType,myAssembly" 
      /> 
     </client> 
     </application> 
    </system.runtime.remoting> 
</configuration> 

這裏的關鍵信息是<activated>標籤。有關更多信息,請參閱此article