2011-04-11 123 views
1

我需要檢查嵌入資源是否存在。在WPF這方面,我比較容易,但在WP7我得到一個MissingManifestResourceExceptionWindows Phone 7:檢查資源是否存在

的WPF代碼的工作原理是:

public static IEnumerable<object> GetResourcePaths(Assembly assembly) { 
     var culture = System.Threading.Thread.CurrentThread.CurrentCulture; 
     //var resourceName = assembly.GetName().Name + ".g"; 
     var assemblyName = assembly.FullName.Split(',')[0]; 
     var resourceName = assemblyName + ".g"; 
     var resourceManager = new ResourceManager(assemblyName, assembly); 

     try { 
      var resourceSet = resourceManager.GetResourceSet(culture, true, true); 

      foreach (System.Collections.DictionaryEntry resource in resourceSet) { 
       yield return resource.Key; 
      } 
     } finally { 
      resourceManager.ReleaseAllResources(); 
     } 
    } 

我試着用下面的代碼,這就造成了異常(第9行替換它)。有沒有辦法在Silverlight/WP7中做到這一點?

public static IEnumerable<object> GetResourcePaths(Assembly assembly) { 
      var culture = System.Threading.Thread.CurrentThread.CurrentCulture; 
      //var resourceName = assembly.GetName().Name + ".g"; 
      var assemblyName = assembly.FullName.Split(',')[0]; 
      var resourceName = assemblyName + ".g"; 
      var resourceManager = new ResourceManager(assemblyName, assembly); 

      try { 
       var resourceSet = resourceManager.GetResourceSet(culture, true, true); 

       foreach (System.Collections.DictionaryEntry resource in resourceSet) { 
        yield return resource.Key; 
       } 
      } finally { 
       resourceManager.ReleaseAllResources(); 
      } 
     } 

回答

0

這個問題的答案前面的問題:WP7: collection of images似乎表明,你可能需要調用GetResourceSet之前得到流:如果工程

var NOT_USED = rm.GetStream("app.xaml"); // without getting a stream, next statement doesn't work - bug?

聽起來有點哈克,但;)

+0

這似乎是一個錯誤。 – Echilon 2011-04-14 21:11:53