2011-07-16 32 views
3

我有一個xml文件作爲Project_A中的嵌入式資源。我可以在同一解決方案中訪問另一個項目的嵌入式資源嗎?

我想從Project_B中引用Project_A來訪問此嵌入式資源。

(基本上Project_B包括單元測試,我用ReSharper的運行它們。)

是否有可能當我在Project_B工作訪問Project_A的嵌入式資源?

或者一般情況下,我可以在同一解決方案中使用另一個項目中的其他項目的嵌入式資源嗎?

回答

6

是的,你可以。下面是一個例子,你如何能得到嵌入的資源System.Timers.Timer.bmp內的.NET框架的System.dll

using (Stream stream = typeof(System.Timers.Timer).Assembly. 
          GetManifestResourceStream("System.Timers.Timer.bmp")) 
{ 
    using (Bitmap bitmap = new Bitmap(stream)) 
    { 
     //bitmap.Dump(); 
    } 
} 

...或獲取資源名稱的列表:

string[] names = typeof(System.Timers.Timer).Assembly.GetManifestResourceNames(); 

.. 。只需將typeof(System.Timers.Timer)替換爲包含嵌入式資源的程序集中的類型。

0

Visual Studio爲您的嵌入式資源自動創建的類是內部類。

該類無法從其他程序集訪問。

您可以:

  1. 改變這一類公衆(不知道您通過Visual Studio的進一步改變資源,這將站在
  2. 從一些主要的「全球回國會面臨這個類「在您的Project_A中提供類,並且因此提供對其他」消費「代碼的訪問
+0

在VS2010#1中不起作用。添加新資源會導致資源類被重新設置爲內部資源。 –

0

您是否嘗試在」表「視圖中打開嵌入式資源(雙擊Visual Studio中的Resources.resx文件)並更改頂部s中的「訪問修飾符」旅行(「字符串」,「添加資源」,「移除資源」等)放置到公衆而不是內部?

相關問題