2011-02-07 92 views
0

我想打開一個resx文件,它是我C#項目中的資源。我需要創建一個ResXResourceSet對象。但是,在運行時會拋出「路徑中的非法字符」異常。這是我正在嘗試使用的代碼。從嵌入式資源文件創建ResXResourceSet對象的問題

var resX = new ResXResourceSet(Project.Properties.Resources.ResXFile);

ResXResourceSet類只有兩個構造函數(來自流和文件名)。如何在這種情況下創建ResXResourceSet類的對象?

+0

您正在獲取作爲字符串嵌入資源中的.resx文件的*內容*。這只是你想要的,.resx文件應該由resgen.exe編譯。改爲將文件添加到您的項目中。 – 2011-02-07 13:44:00

回答

2

使用 Project.Properties.Resources.ResourceManager.GetStream("ResXFile");

如果我理解正確的話,在ResXFile值與的ResX的完整內容的字符串,而不是一個文件路徑,也就是當你傳遞一個字符串ResXResourceSet所期待的。你需要在它周圍包裝一個流。

看到這個問題從一個字符串獲取流:how to generate a stream from a string?

另外,如果你做的資源文件到項目的項目,如主要資源,你可以通過它的ResourceManager訪問它的ResourceSet:ResXFile.ResourceManager.GetResourceSet()

右鍵單擊項目>添加>新建項目>資源文件,即可將ResX添加到項目中。

+0

謝謝你的回覆。但不幸的是,它不起作用。 Project.Properties.Resources.ResXFile的類型是一個字符串。我無法從中獲取流或調用GetResourceSet()方法。 – Peter17 2011-02-07 12:18:03