2011-07-01 157 views
0

希望有些簡單,但已經嘗試過,並保持失敗。 我正在嘗試在C#應用程序中創建一個Stream對象,該對象將CSS文件複製到特定位置。 CSS文件嵌入到我的資源中。 我曾嘗試過的流對象的狀態始終爲空。爲什麼資源流始終爲空?

有人可以通過看下面的指向正確的方向嗎?

謝謝:) burrows111

Assembly Assemb = Assembly.GetExecutingAssembly(); 
Stream stream = Assemb.GetManifestResourceStream(ThisNameSpace.Properties.Resources.ClockingsMapStyle); // NULL!!!! 
FileStream fs = new FileStream("to store in this location", FileMode.Create); 
StreamReader Reader = new StreamReader(stream); 
StreamWriter Writer = new StreamWriter(fs); 
Writer.Write(Reader.ReadToEnd()); 
+0

來自MSDN如果訪問另一個程序集中的私有資源並且調用方沒有ReflectionPermissionFlag.TypeInformation標誌,則此方法返回空引用(在Visual Basic中爲Nothing)。 –

回答

2

這個工作對我來說:

StreamReader reader; 
StreamWriter writer; 
Stream stream; 
Assembly assembly = Assembly.GetExecutingAssembly(); 

using (stream = assembly.GetManifestResourceStream("Namespace.Stylesheet1.css")) 
using (reader = new StreamReader(stream)) 
using (writer = new StreamWriter("test.css")) 
{ 
    string content = reader.ReadToEnd(); 
    writer.Write(content); 
    writer.Close(); 
}  

我試圖在一個標準的Windows窗體應用程序。

編輯:該文件(Stylesheet1.css)作爲一個普通的項目包含在項目中的「嵌入式資源」構建操作。