2012-06-01 10 views
6

Estoy tratando de leer el contenido de un archivo .csproj usando sharpsvn, pero parece que siempre obtengo un archivo vacío de nuevo.Leyendo el contenido de un archivo en sharpsvn

Aquí está mi código:

MemoryStream myOut = new MemoryStream();  
svnClient.Write(path, myOut)) 
return myOut.GetLibsFromCsproj(); 

private static string GetLibsFromCsproj(this MemoryStream csjpros) 
{ 
    TextReader tr = new StreamReader(csjpros); 
    XElement projectNode = XElement.Load(tr); 
    XNamespace msbuild = "http://schemas.microsoft.com/developer/msbuild/2003"; 
    var referenceNodes = projectNode.Descendants(msbuild + "ItemGroup").Descendants(msbuild + "Reference").ToString(); 
    return referenceNodes; 
} 

Cuando mi código obtiene a XElement.Load(tr);, que arroja un error que dice que el elemento raíz no se encuentra. Resulta que nuestro myOut está vacío.

¿Estoy haciendo algo mal?

+0

este tipo puede ser atento [La clase SharpSvn.SvnClient tiene una función GetList() que funciona muy bien:] (http://stackoverflow.com/a/5679545/1239836) – Devendar

Respuesta

8

¿Se acordó restablecer el MemoryStream de nuevo al principio después de escribir en ella? Trate de añadir esta línea antes de la declaración return:

myOut.Seek(0, SeekOrigin.Begin); 
+0

Incluso agregando esto, myOut ya no es nulo, pero está vacío. Si realizo la misma operación usando un FileStream, escribirá todo en el archivo muy bien. – RJP