2012-06-01 37 views
6

Tôi đang cố đọc nội dung của tệp .csproj bằng sharpsvn, nhưng dường như tôi luôn nhận được tệp trống.Đọc nội dung của một tệp trong sharpsvn

Đây là mã của tôi:

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

Khi mã của tôi được đến XElement.Load(tr);, nó ném một lỗi nói rằng phần tử gốc là mất tích. Nó biến chúng ta myOut là trống.

Tôi có làm gì sai không?

+0

này có thể hữu ích anh chàng [Lớp SharpSvn.SvnClient có chức năng GetList() hoạt động thực sự tốt:] (http://stackoverflow.com/a/5679545/1239836) – Devendar

Trả lời

8

Bạn nhớ để thiết lập lại các MemoryStream trở lại bắt đầu sau khi viết vào nó? Hãy thử thêm dòng này trước khi tuyên bố return:

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

Thậm chí thêm này, myOut không còn là rỗng, nhưng nó trống. Nếu tôi thực hiện cùng một thao tác bằng FileStream, nó sẽ ghi mọi thứ vào tập tin tốt. – RJP

Các vấn đề liên quan