我想將MailMessage作爲參數傳遞給我的WCF Web服務。問題是MailMessage不可序列化,並且它的很多屬性(如MailAddress)都不可序列化。我如何序列化它?如何通過WCF Web服務序列化和發送MailMessage?
我見過tutorial通過使用它作爲包裝類中的屬性來序列化它,但是這並不能幫助我通過WCF發送它,因爲MailMessage屬性不會顯示在客戶端上(因爲它不可序列化)。我不想只發送基本的字符串值(從,正文)。我想發送整個MailMessage及其所有屬性。我怎樣才能做到這一點?
更新:
我決定它只是不值得使用Web服務和序列化類MAILMESSAGE。序列化類確實有效,但是他們的許多方法/構造函數在WCF客戶端/客戶端上不可用。所以我不得不重寫代碼以將客戶端的常規類(例如MailMessage)轉換爲序列化類(例如SerializedMailMessage)。
我決定創建一個帶有EmailHelper的類庫,並使用調用應用程序的配置來確定SMTP設置。
SmtpSection smtpConfig = ConfigurationManager.GetSection("system.net/mailSettings/smtp") as SmtpSection;
if (smtpConfig != null) {
// extract values to your SmtpClient
}
檢查了這一點..這是一個合理的辦法...... [http://stackoverflow.com/questions/447071/can-i-pass-a-system-net-mailmessage-to-a-wcf-service][1] [1]:http://stackoverflow.com/questions/447071/can-i-pass-a-system-net-mailmessage-to-a-wcf-service – Hrishi
我看到了這些問題,但問題是MailMessage的屬性(如MailAddress)也不可序列化。我想我只是將整個類及其屬性的類重新編寫爲可序列化的類。我更喜歡的是擴展類並使其可序列化的方式。 – Lifes