2010-08-23 19 views
5

quiero incrustar un archivo xml en un archivo de recursos en mi proyecto, cada vez que necesito el archivo, debo obtenerlo del recurso y usarlo, cómo hacer esto y lo que quiero modificar el contenido del archivo XML, dependiendo de mi requirements.how hacer estocómo incrustar un archivo xml en un archivo de recursos

Respuesta

11

Si se agrega el archivo XML en un proyecto de Visual Studio y, en la ventana de la propiedad para ello, selecciona AcciónCuerpo: Embedded recursos, el archivo se integrará en el artefacto de salida de compilación para ese proyecto.

para acceder a ella desde el código, usar algo como:

string resourceName = "Namespace.Prefix.FileName.xml"; 
Assembly someAssembly = LoadYourAssemblyContainingTheResource(); 
XmlDocument xml = new XmlDocument(); 
using (Stream resourceStream = someAssembly.GetManifestResourceStream(resourceName)) 
{ 
    xml.Load(resourceStream); 
} 
// The embedded XML resource is now available in: xml 

Si el recurso que está cargando está incrustado en su propio ensamblaje, puede hacer algo como Assembly.GetExecutingAssembly() para lograr lo que se enumeran como LoadYourAssemblyContainingTheResource() anteriormente, o posiblemente typeof(SomeTypeInYourResourceAssembly).Assembly

No está claro lo que quiere decir con "querer modificar los contenidos": no puede modificar el recurso dentro del ensamblado en tiempo de ejecución, pero siempre que cambie el archivo XML y vuelva a compilar, la nueva versión estará integrada .

+0

necesito establecer algunos códigos de color según el archivo, cómo obtener el archivo y los valores de lectura después de incrustarlo – karthik

+0

si uso el getmanifestresourcestream obtendré un flujo y debería ponerlo como un archivo y debo usar el archivo para cargar. ¿Es el camino? – karthik

+1

Ejemplo actualizado para mostrar la carga real de XmlDocument desde la secuencia de recursos. – Cumbayah

Cuestiones relacionadas