Ich möchte eine XML-Datei an meinen WCF-Dienst senden, wie kann ich es senden? Gibt es eine Möglichkeit mit Datenverträgen oder Nachrichtenverträgen? Bitte helfen.Wie sende ich eine XML-Datei über WCF DataContracts/MessageContracts?
Antwort
Sie können etwas tun:
var doc = new XmlDocument();
doc.LoadXml(xmlContent);
var message = Message.CreateMessage(MessageVersion.Soap11, "urn:someRequest", new XmlNodeReader(doc));
var factory = new ChannelFactory<IRequestChannel>("serviceHttpSoap11Endpoint");
var channel = factory.CreateChannel();
var response = channel.Request(message);
channel.Close();
Also, zuerst die XML-Datei im XmlDocument-Objekt laden, dann passen Sie die obige Probe um sie zu senden.
Ich schrieb einen Beitrag über das vor einer Weile: http://www.pvle.be/2009/02/send-xmldocument-using-windows-communication-foundation/
Der DataContract definiert Ihre C# -Darstellung der XML, die über die Leitung geht. Sie wollen nicht auf das rohe XML schauen - vertrauen Sie mir ..... :-)
Also im Grunde benötigen Sie eine C# -Klasse, die Ihr DataContract ist, um zu beschreiben, wie Ihr XML aussieht. Auf dem Client und dem Server arbeiten Sie mit den C# -Klassen - nicht mit dem Roh-XML. Wenn Ihr DataContract auf das XML-Format ausgerichtet ist, können Sie das Roh-XML in eine Klasseninstanz Ihrer DataContract-Klasse deserialisieren.
Alternativ können Sie auch einfach ein Zeichenfolgenfeld zu Ihrem DataContract hinzufügen und Ihre Roh-XML-Datei dort einpacken und senden.
Die letzte Alternative, die Sie haben, ist die grundlegende, untypisierte Message
Art für den WCF Vertrag - in diesem Fall müssen Sie mit Roh-XML sowohl auf der Client-und der Server-Seite beschäftigen - überhaupt nicht schön, aber wenn Sie wirklich wollen - es liegt an dir.
Sehen Sie die MSDN documentation on raw messages und überprüfen Sie Kurt Claeys blog post darauf.
Marc
Während es am besten marc_s' Beratung und hielt mit High-Level-Datenverträgen zu folgen, ist es gelegentlich notwendig beliebige XML zu senden. Um dies zu tun, können Sie einen XmlElement-Parameter zu Ihrem OperationContract hinzufügen.
Um dies zu tun, müssen Sie den XmlSerializer anstelle des Data Contract Serializers verwenden. Sie müssen das [XmlSerializerFormat] -Attribut für Ihren Dienstvertrag verwenden.
- 1. Wie sende ich eine Zeichenfolge über PostMessage?
- 2. Wie sende ich eine Löschanforderung
- 3. Wie sende ich SMS über OpenEdge 10.2B
- 4. Wie sende ich GWT JavaScriptObjects über RPC?
- 5. Wie sende ich Liste über Sockets Java
- 6. Wie sende ich asynchrone Daten über libwebsocket?
- 7. Wie sende ich eine große XML-Datei über Sockets
- 8. Wie sende ich eine Serverfehlerantwort mit PHP?
- 9. Wie sende ich einen zweiten Wert über Ajax zu PHP
- 10. Wie sende ich E-Mails über PHP an GMail?
- 11. Wie sende ich Metaschlüssel über SSH auf Mac?
- 12. Wie sende ich Klartext über Python 3-Socket-Bibliothek?
- 13. Wie sende ich telnet Optionscodes?
- 14. Wie sende ich 'put' Anfrage über javaScript & Ajax?
- 15. Wie sende ich Audiodatei senden über iMessage ios 8
- 16. curl: Wie sende ich Cookies über die Befehlszeile?
- 17. Wie sende ich E-Mails über Google Mail mit cforms?
- 18. Wie sende ich Mail mit PHP über API auf localhost?
- 19. Wie sende ich ein Pygame-Bild über Websockets?
- 20. Wie sende ich eine Skype-Chat-Nachricht über einen Remote-Server an eine Gruppe?
- 21. C# Sende Empfangsobjekt über Netzwerk?
- 22. Wie sende ich eine SMS in hebräisch mit clickatell
- 23. Wie erstelle ich eine PayPal-Zahlungsanforderung und sende eine Rechnung?
- 24. Wie sende ich eine IM von Visual Basic 2005?
- 25. Wie sende ich eine HTML-POST-Anfrage ohne Körper?
- 26. WCF: Wie erstelle ich ein dynamisches Image in einem WCF-Dienst und sende es zurück an den Aufrufer?
- 27. Wie sende ich eine E-Mail mit Anhängen mit SmtpClient.SendAsync?
- 28. Der Remote-Server hat einen Fehler zurückgegeben: NotFound, wenn ich eine Sammlung an WCF sende
- 29. Fehler 404, wenn ich eine Mail sende
- 30. Wie sende ich eine E-Mail über SMTP mit Rubys Mail-Juwel?
@Praveen: Wie sind Sie auf dieses Problem zu tun? Wenn Sie immer noch ein Problem haben, können Sie etwas über die Art von XML-Datei sagen, die Sie senden möchten? –