Cliente nuovo, problemi nuovi :)

In particolare, ieri mi sono trovato a combattere con un WebService che accettava una stringa Xml invece di un classico oggetto esposto dallo stesso... lasciamo stare anche che il suddetto webservice (in produzione) esponesse come namespace tempuri.org (ok ok, me aculpa, devo leggere i messaggi in grassetto _prima_ di creare le reference :P) e che quindi alla fine non sia nemmeno riuscito a testarlo.. ovviamente _non_ dirò la società in questione, ma non è piccola :)

Comunque, questa faccenda della stringa mi ha obbligato a crearmi delle mie strutture ed a serializzarle a run-time per ottenere una stringa da buttare in pasto ad un validatore XSD (in post futuri spiegherò magari anche come validare contro un xsd e come comandare la serializzazione di una struttura via attributi... ho avuto piu Daily Issue ieri che in tutta settimana scorsa :))

Comunque il problema più "grave" che ho avuto è che per creare il mio validatore Xsd avevo bisogno di un XmlTextReader, che _non_ accetta una stringa XML ma solo un documento... l'unico overload del costruttore che accetta una stringa Xml è l'unico che non è documentato con un esempio su msdn (http://msdn2.microsoft.com/it-it/library/system.xml.xmltextreader.xmltextreader(VS.80).aspx l'ultimo in fondo.. gli altri leggendo bene accettano una stringa che è l'URI del file XML, non una stringa XML....) e di cui non mi è molto chiaro  a tutt'ora il funzionamento....

Cerca che ti ricerca, mi sono imbattuto in un oggetto che (mea grandissima culpa!!!) non conoscevo: System.IO.StringReader!
Praticamente espone uno stream partendo da una stringa .... perfetto per i miei bisogni!

XmlTextReader reader = new XmlTextReader(new System.IO.StringReader(inputXml);

... e vissero tutti felici e contenti :)