2010-11-26 9 views
4

J'ai un formulaire C# dont l'entrée que je vise à transformer en un document XML à joindre à un e-mail envoyé à moi-même. Jusqu'à présent, j'ai une XDocument que je crois est terminée, et je l'ai également compris comment attacher un fichier .txt au MailMessage avec:Comment attacher un XDocument à un MailMessage en C#?

MailMessage.Attachments.Add(new Attachment("[...]\test.txt")); 

je crois comprendre que je pourrais utiliser

XDocument.Save("[...]\formData.xml"); 

pour enregistrer le fichier, puis

MailMessage.Attachments.Add(new Attachment("[...]\formData.xml")); 

pour charger et la joindre, mais cela semble inutile.

Est-ce que quelqu'un a une meilleure façon de procéder? Je suppose qu'il doit y avoir un moyen d'attacher le XDocument sans avoir à aller dans le système de fichiers comme ça ...

Répondre

3

Vérifiez la classe de pièce jointe; vous pouvez ajouter des pièces jointes par de nombreuses autres méthodes que simplement à partir d'un fichier, comme à partir d'un flux ou contenu chaîne:

http://msdn.microsoft.com/en-us/library/system.net.mail.attachment.aspx

+0

On dirait que je veux obtenir le XDocument à la sortie dans un objet flux puis, ce qui aide . Je vais regarder dans ça. –

+0

FYI à d'autres regardant cette solution, j'ai complété l'implémentation en créant un objet MemoryStream (MemoryStream ms = new MemoryStream()), en créant un objet XMLWriter (XMLWriter xw = XMLWriter.Create (ms)), en écrivant au XMLWriter (XDocument .WriteTo (xw)), fermant le XMLWriter (xw.Close()), définissant la position du MemoryStream à 3 pour se débarrasser de quelques caractères supplémentaires apparaissant au début (mw.Position = 3), et enfin faire ma pièce jointe avec le flux (nouvelle pièce jointe (mw, "formData.xml")). À votre santé –

Questions connexes