2010-12-03 71 views

回答

2

不是真的,因爲一個應用程序可能使用多個框架。你最好的選擇可能是看哪個程序集加載到調用的AppDomain中,並從那裏獲取:)

0

關於我能想到爲什麼你需要這些信息的唯一原因是,如果你遇到「Invoke」問題,你需要在哪裏等。一個winforms應用程序的GUI線程。

如果這是原因,那麼這個被SynchronizationContext類抽象出來。

如果是其他原因,可能會有助於我們瞭解您爲什麼需要此信息。可能有一個類似的抽象已經創建,以滿足您的需求。

+0

恐怕這是一個比特定需求更具推測性的問題。我所指的組件向其所在的infrastrucutre框架提供信息(類似於Environment.Context)。我試圖確定哪些信息可以確定並公開給其他基礎設施組件使用。例如,其運行的位置,以便組件可以使用區域特定的設置,部署類型,以便組件可以根據測試或生產情況採取不同的行爲。 – gouldos 2010-12-03 10:17:34

1

正如@cwap所說,使用AppDomain.CurrentDomain.GetAssemblies()並檢查是否找到WinForms或Asp。

foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) 
{ 
    if (assembly.Location.EndsWith("System.Windows.Forms.dll")) 
     Console.WriteLine("Winforms is loaded"); 
} 
相關問題