Windows Phone 7:检查资源是否存在
问题描述:
我需要检查嵌入资源是否存在。在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();
}
}
答
这个问题的答案前面的问题:WP7: collection of images似乎表明,你可能需要调用GetResourceSet之前得到流:如果工程
var NOT_USED = rm.GetStream("app.xaml"); // without getting a stream, next statement doesn't work - bug?
听起来有点哈克,但;)
这似乎是一个错误。 – Echilon 2011-04-14 21:11:53