2011-04-11 143 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