Sto tentando di integrare un'applicazione con un servizio web di terze parti. La firma del metodo devo chiamare è qualcosa di simile (generato da VS generatore di proxy):Chiamare un webservice da C# e inviare xml senza caratteri escape
string MyFoo(string param1, string param2, string param3, string someXml)
Ora per i primi 3 parametri non c'è nessun problema. Il quarto parametro, secondo le specifiche del fornitore, dovrebbe contenere "XML escape avvolto in un blocco CDATA", in questo modo:
<![CDATA[<?xml version="1.0" encoding="utf-8"?><rootNode></rootNode>]]>
Ora, C# fughe (come mi sarei aspettato che faccia) tutti i caratteri che devono essere sfuggito, soprattutto i caratteri "<" e ">", anche nella dichiarazione CDATA, con conseguente qualcosa di simile:
<![CDATA[<?xml version="1.0" encoding="utf-8"?><rootNode></rootNode>]]>
per quanto so che questo è un comportamento corretto, e non c'è alcun modo per ignorare esso , in quanto potrebbe generare una cattiva richiesta (messaggio di sapone non valido) e persino un problema di sicurezza.
Qualcuno sa se mi sto perdendo qualcosa, non sapendo qualcosa, o questo è corretto e l'aspettativa del webservice di terze parti non può essere rispettata?
Grazie.