我正在一個便攜式區域內執行一項操作,該區域需要獲取有關調用它的Assembly
的信息。便攜式區域位於項目Core
中,由客戶端應用程序Client
引用。在便攜式區域獲取呼叫/客戶端組件
GetAssembly
和GetExecutingAssembly
都返回Core
組件:
// Both are Core
assembly = Assembly.GetAssembly(GetType());
assembly = Assembly.GetExecutingAssembly();
我的下一個想法是使用GetCallingAssembly
,但帶回Anonymously Hosted DynamicMethods Assembly.
assembly = Assembly.GetCallingAssembly();
唯一的其他選擇是GetEntryAssembly
,這僅僅是null:
assembly = Assembly.GetEntryAssembly();
我想要做的是使用內置框架獲取對Client
程序集的參考。顯然,我可以使用一些花哨的依賴注入或其他一些不太複雜的方法來獲取這些信息。不過,我想知道是否有更好的內置方式來做到這一點。
澄清:我想要得到的是客戶端程序集的版本信息。我希望每個客戶都可以訪問位於Core
區域的VersionInfo
部分,並將構建版本信息添加到呈現的頁面。所以,Core
中的動作需要知道調用它的程序集,以便它可以反映版本信息。
你能提供一些上下文嗎?便攜式區域需要使用它的組件的哪些信息? DI/IoC聽起來像迄今爲止最好的解決方案,但它不一定是「幻想」。 – danludwig 2012-04-09 20:39:56
增加了一個說明 - 我同意DI聽起來不像是一個可怕的解決方案;我只是希望有一些神奇的東西已經建成。 – eouw0o83hf 2012-04-09 20:56:27