2012-10-22 18 views
2

我有這個問題,這個代碼:的Visual Basic重載決策失敗,因爲沒有可訪問的「新」可以調用,錯誤

Generate a PDF file as system.net.mail.attachment using Memory Stream

幫助我在內存中創建一個電子郵件附件。

Imports System.IO 
Imports System.Net.Mail 
Imports System.Text.ASCIIEncoding 
Imports System.net.Mime 

Public Sub SendMail(ByVal att As String, Optional ByVal filename As String _ 
    = "Attachment.csv") 

    Dim sendMail As New SmtpClient 
    Dim mail As New MailMessage 

    Using MemoryStream = New MemoryStream 

     If att.Length <> 0 Then 

      Dim data As Byte() = ASCII.GetBytes(att) 

      MemoryStream.Write(data, 0, data.Length) 
      MemoryStream.Seek(0, SeekOrigin.Begin) 
      MemoryStream.Position = 0 

      Dim content As New Net.Mime.ContentType() 

      content.MediaType = MediaTypeNames.Application.Octet 
      content.Name = filename 

      Dim Attach As Attachment 
      Attach = New Attachment(MemoryStream, content) 
      mail.Attachments.Add(Attach) 
     End If 

     sendMail.DeliveryMethod = SmtpDeliveryMethod.Network 
     sendMail.Host = "SERVER" 
     sendMail.UseDefaultCredentials = False 

     sendMail.Credentials = New System.Net.NetworkCredential("UN", "PW") 
     sendMail.Send(mail) 
    End Using 
End Sub 

我收到此錯誤:

重載決策失敗,因爲沒有可訪問的 '新' 可以被稱爲無收縮轉換:

「的Public Sub New(contentStream作爲System.IO。 Stream,contentType As System.Net.Mime.ContentType)':參數匹配參數'contentStream'從'Object'變爲'System.IO.Stream'。

'Public Sub New(fileName As String,contentType As System.Net.Mime.ContentType)':參數匹配參數'fileName'的參數從'Object'變爲'String'。

Dim Attach As Attachment 
Attach = New Attachment(MemoryStream, content) 

在這條線。

我該如何解決這個問題?

回答

2

或使用該

Using MemoryStream As MemoryStream = new MemoryStream() 
3

在Using語句中,您將名爲MemoryStream的變量初始化爲Object而不是MemoryStream。

嘗試從

Using MemoryStream = New MemoryStream 

改變你使用語句

Using MemoryStream As New MemoryStream 
相關問題