Ich habe ein String-Objekt. Ich muss diese Daten an ein anderes Objekt vom Typ XYZ übergeben. Aber dieses Objekt vom Typ XYZ nimmt nur System.IO.Stream. Wie kann ich also die String-Daten in einen Stream konvertieren, so dass das Objekt vom Typ XYZ diese String-Daten verwenden kann?
Antworten
Zu viele Anzeigen?Sie müssen eine Textkodierung auswählen, um die Zeichenkette in ein Byte-Array zu übersetzen, und dann eine MemoryStream
um Ihre Funktion aufzurufen. Zum Beispiel:
using(System.IO.MemoryStream ms = new System.IO.MemoryStream(
System.Text.Encoding.UTF16.GetBytes(yourString)))
{
XYZ(ms);
}
Sie können ändern UTF16
die Kodierung sein, die Sie für die Übergabe der Zeichenfolge verwenden möchten.
Angenommen, Sie wollen den Stream der Zeichenkette in UTF8 kodiert haben:
System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes( "the string"));
Je nachdem, was Sie wirklich tun wollen, sind Sie mit der Klasse StringReader vielleicht besser bedient. Sie ist zwar kein IO.Stream, ermöglicht aber ein einfaches textorientiertes Lesen von Strings.
Dieser Code lädt formatierten Text (rtf) in die RichTextBox
TextRange tr = new TextRange(RichTextBox1.Document.ContentStart,RichTextBox1.Document.ContentEnd);
string s = myStringData; //myStringData is a string in some format - rtf, xml, etc..
MemoryStream ms = new MemoryStream(s);
tr.Load(ms, DataFormats.Rtf);