Windows Phone 7: проверьте, существует ли ресурс - PullRequest
1 голос
/ 11 апреля 2011

Мне нужно проверить, существует ли встроенный ресурс. В WPF это относительно легко, но в WP7 я получаю исключение MissingManifestResourceException

Код 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(); 
            } 
        } 

1 Ответ

0 голосов
/ 11 апреля 2011

Ответ на этот предыдущий вопрос: WP7: коллекция изображений указывает на то, что вам может потребоваться получить поток перед вызовом GetResourceSet :

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

Звучит немного странно, но если это работает;)

...