2010-06-13 11 views
9

Quiero agregar algún archivo xml como recurso a mi proyecto de biblioteca de clase. ¿Alguna idea de cómo hacerlo y llámala más tarde? En la aplicación de Windows lo haría como ClassLibrary1.Properties.Resources.file.xmlrecursos en el proyecto de la biblioteca de clase

Pero aquí no funcionó ni idea de cómo lo hago aquí?

+0

¿Qué hiciste que no funcionó? ¿Qué has intentado? – dtb

+6

¿Dónde está la tierra "aquí"? –

Respuesta

9

This article explica cómo utilizar los recursos integrados en C#.

Se reduce a

  1. A 'Tiempo de diseño': Añadir archivo a proyectar y marcarla como un recurso incrustado (propiedades)
  2. A 'en tiempo de ejecución': Obtener instancia de la Asamblea que mantiene la recurso que desea, luego saque ese recurso como una corriente.

var assembly = Assembly.GetExecutingAssembly();

var stream = assembly.GetManifestResourceStream ("fully.qualified.name.of.the.resource");

Si usted está luchando para resolver el nombre de FQ del recurso, una forma perezosa es utilizar el reflector para abrir el conjunto que lo sujeta. Vaya a la carpeta de Recursos, haga clic derecho en el recurso en particular y seleccione 'Copiar'.

+0

Gracias. Esto me ayudó. Otra forma de obtener los nombres sin descargar una herramienta es acceder a _assembly.GetMainfestResourceNames() y colocar allí un punto de interrupción. Obtendrá todos los nombres, luego podrá copiarlos y pegarlos, y deshacerse de su llamada para obtener los nombres. :) – bgs264

8

En uso de las ventanas que lo haría como ClassLibrary1.Properties.Resources.file.xml

Por defecto, la clase generada para tener acceso a los recursos es interna, por lo que no se puede acceder a él desde otra asamblea. Si necesita hacerlo público, seleccione el archivo .resx, vaya a sus propiedades y cambie la propiedad Herramienta personalizada de "ResXFileCodeGenerator" a "PublicResXFileCodeGenerator". Esta herramienta personalizada genera clases públicas, lo que debería resolver su problema.

2

Haga clic con el botón derecho en Proyecto de biblioteca de clases, seleccione propiedades, en las pestañas de la izquierda, seleccione la sección Recursos.

Dado que sus archivos .resx no son reconocibles por Visual Studio, agregue uno nuevo. Creará un nuevo archivo .resx.

Copie todo su contenido original y péguelo en uno nuevo. Entonces puedes borrar el anterior. ¡Eso es todo!

Debería repetir el mismo proceso para todos sus idiomas admitidos.

Cuestiones relacionadas