我正在尝试构建一个Web服务,以便从外部获取邮件服务器的附件并从那里发送,但我收到以下错误:
要成为XML可序列化,从IEnumerable继承的类型必须具有 Add(System.Object)在其所有级别的实现 继承层次结构。 System.Collections.Specialized.StringDictionary 没有实现Add(System.Object)。 [出现InvalidOperationException: 反映类型为“System.Net.Mail.Attachment”的错误。]
我的代码如下:
[WebMethod]
public String SendMailWithAttachment(string mail_sender, string[] mail_receiver, string mail_subject, string mail_text, Attachment att)
...
答案 0 :(得分:0)
System.Net.Mail.Attachment不是为了序列化为xml而设计的。您需要发送构建附件所需的数据,并在Web方法的主体中使用它。例如,发送带有数据的字节数组和带有附件名称的字符串:
[WebMethod]
public String SendMailWithAttachment(string mail_sender, string[] mail_receiver, string mail_subject, string mail_text, byte[] attachment_data, string attachment_name){
using(var ms = new MemoryStream(attachment_data)){
var attachment = new System.Net.Mail.Attachment(ms,attachment_name);
...
}
}