Come può un XElement risposta WCF includere la dichiarazione di XML?
Domanda
Ho un servizio WCF che restituisce un XElement, questo sta lavorando bene però vorrei per includere la dichiarazione XML nella risposta:
<?xml version="1.0" encoding="utf-8"?>
Il lato client non è qualcosa che posso cambiare e sta riportando un "risultato non è XML" Le uniche altre differenze tra la risposta del mio risultato HTTP è il tipo di contenuto del mio servizio WCF:
Content-Type: application/xml; charset=utf-8
vs.
Content-Type: text/xml; charset=utf-8
Suppongo che il "risultato non è XML" è causato dalla dichiarazione XML mancante. Come è possibile aggiungere la dichiarazione XML alla risposta XElement? Ho pensato che un MessageFormatter potrebbe essere in grado risolvere questo problema, ma non ho idea da dove cominciare.
Soluzione
XDocument Classe Panoramica per un rapido esempio di come aggiungere la dichiarazione XML per l'output.
Anche se sono d'accordo con @ John, sua improbabile la dichiarazione XML manca è il problema a meno che il cliente sta convalidando manualmente il codice XML come testo (che sarebbe una cosa sciocca da fare, ma ho visto fare) ed è partendo dal presupposto che qualsiasi testo manca la dichiarazione XML non deve essere XML valido.
Se il client è un client .NET, quindi consentire messaggio WCF la registrazione e verificare ciò che il cliente sta ricevendo. Se il cliente non è un client .NET, quindi utilizzare Netmon o Wireshark per ispezionare il traffico di convalidare payload.