How do I mimic a System.IO.Stream, if I have a String, instead of a string stored in a file?

I have a class that is final.  I cannot change it.  The problem is that the class has a constructor of it's VB, but I don't care if the answer is C# based...it's a library.

Sub New ThisClass(ByVal reader As XMLTextReader)

Here's the issue I need to solve.  I do not have the information I want to pass in to this class stored in a file.  I have it stored in a string (ie.  like a file that's already read in).  Is there a way to mimic a System.IO.StreamReader, using an in memory string, instead of a file (which is just pointing to a string anyway?

Since I am desperate for an answer (deadlines. Ack!), I am offering 500 pts to the expert who can help me 'fake' a string by wrapping it into some kind of IO Stream, so that I can instantiate the XMLTextReader class as follows:

Dim sinmemoryfile As String

Dim ostream [some kind of IOStream in memory] = New [some kind of IO.Stream in memory](sinmemoryfile)
Dim oxmlreader As XmlTextReader = New XmlTextReader(ostream (as System.IO.Stream))

Do you understand the dilemma I have?  I don't need to read the file in!  It's already read (and is fact, never in a file).  I do not want to have to save this string to a file and then pass in the file--that's incredibly inefficent and then I'd have to keep track of a ton of files (never mind naming conventions, etc.)

Is there some way to create an System.IO.Stream that uses a string?

Thanks in advance for your expertise!
louisiana_bluesAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Babycorn-StarfishCommented:
what about a memory stream?
0
Babycorn-StarfishCommented:
0
DBAduck - Ben MillerPrincipal ConsultantCommented:
There is a StringReader class in System.IO that takes a String.
Then you can use the XmlTextReader to get at it like this:

Dim sinmemoryfile as String
Dim ostream as StringReader = New StringReader(sinmemoryfile)
Dim oxmlreader as XmlTextReader = CType(XmlTextReader.Create(ostream), XmlTextReader)

Then use the XmlTextReader. (or in any case you can use the XmlReader class which is what XmlTextReader returns)

Ben.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
louisiana_bluesAuthor Commented:
Hey dbaduck:

Thanks dude.  I will give that a try.  If it works, you get the points.  Thanks to the others.   I was looking for something including code, not a link that I would have read to infer an answer...

I will share the points, but dbaduck will get the most if his/her solution works.  Hope that's okay!

Okay, I checked it and it works.  You are indeed experts!  You all jumped on that question like it was a happy pill. ;-)
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.