2010-11-11 85 views
2

我如何可以讀取文本文件,其嵌入在RESX文件的ResourceManager類的幫助的內容?C#:讀取文件,該文件是嵌入在一個資源文件

下面的代碼片段有什麼問題?

ResourceManager resman = new ResourceManager("Mynamespace.RESXFileName", Assembly.GetExecutingAssembly()); 
Stream stream = resman2.GetStream("ResourceName"); 

stream is always = null!

回答

1
<ResourceNamespace>.ResourceManager.GetString(<textresourcename>); 
7
 using (var resourceStream = Assembly.GetExecutingAssembly() 
        .GetManifestResourceStream(resourceName)) 
     { 
      if (resourceStream != null) 
      { 
       using (var textStreamReader = new StreamReader(resourceStream)) 
       { 
        text = textStreamReader.ReadToEnd(); 
       } 
      } 
      else 
      { 
       throw (new MissingManifestResourceException(resourceName)); 
      } 
     } 

資源名稱由名稱空間和文件名決定。說文件MyTxt.txt項目,其中有默認命名空間MyNs根存在,那麼資源名稱將是:MyNs.MyTxt.txt

編輯

我應該學會閱讀問題。我還沒有測試,但這應該給你你想要的:

static object GetResxObject(string resxPathName, string resourceKey) 
    { 
     using (var resxReader = new ResXResourceReader(resxPathName)) 
     { 
      return resxReader 
       .Cast<DictionaryEntry>() 
       .Single(d => string.Equals(d.Key, 
              resourceKey)) 
       .Value; 
     } 
    } 

    ... 
    var myString=(string)GetResxObject(@"path\to\resx.resx","myStringKey");