2012-06-01 12 views
6

Sto provando a leggere il contenuto di un file .csproj usando sharpsvn, ma mi sembra di avere sempre un file vuoto.Leggere il contenuto di un file in sharpsvn

Ecco il mio codice:

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; 
} 

Quando il mio codice arriva a XElement.Load(tr);, getta un errore che dice che elemento principale è manca. Si scopre che myOut è vuoto.

Sto facendo qualcosa di sbagliato?

+0

questo può essere utile tizio [La classe SharpSvn.SvnClient ha una funzione GetList() che funziona davvero bene:] (http://stackoverflow.com/a/5679545/1239836) – Devendar

risposta

8

Ti sei ricordato di reimpostare il MemoryStream di nuovo all'inizio dopo aver scritto in esso? Prova ad aggiungere questa riga prima dell'istruzione return:

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

Anche aggiungendo questo, myOut non è più nullo, ma è vuoto. Se eseguo la stessa operazione utilizzando un FileStream, scriverà tutto correttamente sul file. – RJP

Problemi correlati