2011-06-13 26 views
5

Necesito pasar una matriz de cadenas a SQL Server 2005, así que escribí un procedimiento almacenado que acepta un parámetro XML y lo trata adecuadamente. Mi pregunta es si hay alguna manera fácil de serializar un string[] en una cadena XML (no un archivo en el disco) directamente en C# sin tener que codificar mi propio método usando XDocument, XAttribute y similares.Serializar un System.Array a una Cadena XML

Ejemplo: Quiero ser capaz de transformar algo así como new string[] { "a", "b", "c" } en algo así como

<StringList><String>a</String><String>b</String><String>c</String></StringList> 

nombres de las etiquetas de elementos no son importantes.

Respuesta

14

Usted podría intentar XmlSerializer si realmente quiere evitar escribir su propio código, pero hacerlo con LINQ to XML podría ser tan simple como:

XElement element = new XElement("StringList", 
           values.Select(x => new XElement("String", x))); 
string text = element.ToString(); 
+0

Se puede utilizar este método para dar el nombre de el elemento de la matriz también? p.ej. 'values.Select (x => new XElement (array [0,0], array [0,1])));' –

+1

@ChrisHall: Claro, si 'array' es un' string [,] '... es solo una llamada de constructor, por lo que realmente no le importa de dónde provienen los argumentos. –

+0

¡Genial! Todavía no estoy al 100% con C#, recién comencé un papel junior. ¿Puedo ser descarado y preguntar cómo se hace, por favor :) –

Cuestiones relacionadas