Redirigere standard output su stringa

martedì 10 giugno 2008 - 15.53

paquito_ita Profilo | Senior Member

Ciao,

al momento uso il seguente codice (in C#) per scrivere su console un documento .rdf (usando le API di SemWeb):
using (RdfWriter writer = new RdfXmlWriter(Console.Out)) { writer.Write(store); string t = writer.ToString(); store.Dispose(); writer.Close(); }
L'oggetto RdfXmlWriter accetta come parametri su cui scrivere: System.IO.TextWriter(che uso al momemento), String (per scrivere su file) o System.Xml.XmlWriter.

Volendo restituire una stringa con il contenuto del documento .rdf, invece che stamparlo su console, come dovrei fare? So che in Java ci sono metodi appositi, ma sono abbastanza nuovo in C#...

Grazie

freeteo Profilo | Guru

ciao,
puoi usare "StringWriter" il quale eredita (o meglio "implementa" dato che TextWriter è astratta) tutti i metodi che ti servono tipo il "Write" o il "WriteLine" etc... che il tuo RdfXmlWriter ha bisogno e che quindi invokerà.

Perciò, tradotto il codice qualcosa del tipo:

StringWriter stringWriter = new StringWriter(); using (RdfWriter writer = new RdfXmlWriter(stringWriter)) { writer.Write(store); string t = writer.ToString(); store.Dispose(); writer.Close(); //<--- questa riga è in più dato che usi lo statement "using" // il close e il dispose vengono invocati da soli }

dopodichè usi il metodo "ToString()" dello StringWriter e sei a posto, hai tutto nella tua stringa che ti torna e puoi farci quello che vuoi.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5