.net中應用程式域的概念

iDotNetSpace發表於2009-02-24
在.NET平臺下,程式集並沒有直接承載在程式中(而傳統的win32程式是直接承載的)。實際上.NET可執行程式承載在程式的一個邏輯分割槽中,術語稱為應用程式域(也稱AppDomain)。可見,一個程式可以包含多個應用程式域,每一個應用程式域中承載一個.NET可執行程式,這樣的好處如下:
    應用程式域是.NET平臺作業系統獨立性的關鍵特性。這種邏輯分割槽將不同作業系統載入可執行程式的差異抽象化了。
    和一個完整的程式相比,應用程式域的CPU和記憶體佔用要小的多。因此CLR載入和解除安裝應用程式域比起完整的程式來說也快的多。
    應用程式域為承載的應用程式提供了深度隔離。如果程式中一個應用程式域失敗了,其他的應用程式域也能保持正常。

    AppDomain的主要成員:
    CreateDomain():該靜態方法在當前程式中建立一個新的應用程式域。由於CLR能夠根據需要建立應用程式域,所以必須呼叫這個方法的機會很少。
    GetCurrentThreadId():該靜態方法返回當前應用程式域上活動的執行緒ID。
    UnLoad():該靜態方法在程式中解除安裝指定的應用程式域。
    BaseDirectory:獲取基目錄,該目錄用於探測相關的程式集。
    CreateInstance():在指定程式集檔案中建立指定型別的新例項。
    ExecuteAssembly():根據檔名在應用程式域中執行程式集。
    GetAssemblies():獲取已載入到此應用程式域中的.NET程式集(基於COM和C的二進位制檔案除外)。
    Load():動態載入程式集到當前應用程式域。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-557579/,如需轉載,請註明出處,否則將追究法律責任。

相關文章