2011-06-30 19 views
13

Necesito escribir un programa, que lea todos los recursos de cadena de dll e insértelos en alguna tabla. Tengo el método, que lee los recursos:Obtenga todas las cadenas de resourcemanager

private static IEnumerable<KeyValuePair<string,string>> getAllResources(ResourceManager resourceManager, 
     Language language) 
    { 

     ResourceSet resourceSet = resourceManager.GetResourceSet(getCulture(language), true, true); 

     IDictionaryEnumerator dictNumerator = resourceSet.GetEnumerator(); 

     // Get all string resources 
     while (dictNumerator.MoveNext()) 
     { 
      // Only string resources 
      if (dictNumerator.Value is string) 
      { 
       var key = (string)dictNumerator.Key; 
       var value = (string)dictNumerator.Value; 
       yield return new KeyValuePair<string, string>(key, value); 
      } 
     } 
    } 

Pero cuando empecé a usarlo, me di cuenta de que también lee los recursos, que se añadió como un archivo (lee el contenido del archivo)

Cómo puedo ignorar recursos que se agregan como un "archivo" y leen solo cadenas?

+0

¿No sería posible usar 'as' en el valor? –

+0

Puedo usar "como" en lugar de "es", pero no está resolviendo mi problema – Oleksey

Respuesta

2

No hay forma de hacerlo. Eche un vistazo a la sección de recursos de su ensamblaje a través de Reflector, por ejemplo. Su archivo de texto se guarda como String. No hay diferencia entre el valor de cadena y el valor de archivo de texto.

Los archivos binarios, sin embargo, no serán un problema, ya que para los tipos de archivos binarios tendrá byte [] como valor y no como cadena.

+0

sí, los archivos binarios no son un problema. Problema solo con archivos de texto. Pero cuando veo los recursos en Visual Studio 2010, se ordenan por tipo: "Cadenas" \ "Archivos" \ "Imágenes" \ "Iconos". ¿Cómo están haciendo eso? – Oleksey

+0

Estas son representaciones de recursos de Visual Studio. Utiliza archivos e imágenes e iconos para cargarlos como recursos en el ensamblaje. Después de eso, solo tiene ensamblado con datos de mapa de bits, cadena o byte []. – DiVan

Cuestiones relacionadas