Big Fail ? Unerklärbarer Fehler + EIN WEITERER FEHLER !

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von iEi.

    Big Fail ? Unerklärbarer Fehler + EIN WEITERER FEHLER !

    HeyHo Com,

    hab einen Unerklärbaren Fehler ?!
    *Unten angehängt*

    meine Deklaration:

    VB.NET-Quellcode

    1. Private ReadOnly messages As New Dictionary(Of Integer, Message)()


    Code des "TreeNodeBuilder" 's

    VB.NET-Quellcode

    1. Imports System.Windows.Forms
    2. Imports OpenPop.Mime
    3. Imports OpenPop.Mime.Traverse
    4. Imports Message = OpenPop.Mime.Message
    5. Namespace Core
    6. Friend Class TreeNodeBuilder
    7. Implements IAnswerMessageTraverser(Of TreeNode)
    8. Public Function VisitMessage(ByVal message As Message) As TreeNode
    9. If message Is Nothing Then
    10. Throw New ArgumentNullException("message")
    11. End If
    12. Dim child As TreeNode = VisitMessagePart(message.MessagePart)
    13. Dim topNode As New TreeNode(message.Headers.Subject, New Object() {child})
    14. Return topNode
    15. End Function
    16. Public Function VisitMessagePart(ByVal messagePart As MessagePart) As TreeNode
    17. If messagePart Is Nothing Then
    18. Throw New ArgumentNullException("messagePart")
    19. End If
    20. Dim children As TreeNode() = New TreeNode(-1) {}
    21. If messagePart.IsMultiPart Then
    22. children = New TreeNode(messagePart.MessageParts.Count - 1) {}
    23. For i As Integer = 0 To messagePart.MessageParts.Count - 1
    24. children(i) = VisitMessagePart(messagePart.MessageParts(i))
    25. Next
    26. End If
    27. Dim currentNode As New TreeNode(messagePart.ContentType.MediaType, children)
    28. currentNode.Tag = messagePart
    29. Return currentNode
    30. End Function
    31. End Class
    32. End Namespace


    Wie kann ich den beheben ?


    Gruß iEi
    Bilder
    • Fail.png

      191,81 kB, 1.366×768, 240 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „iEi“ ()

    @iEi:: Was ist Message nicht aber Messages :?:

    VB.NET-Quellcode

    1. Private ReadOnly messages As New Dictionary(Of Integer, Message)()
    2. ----------------------------------------------------------^
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    iEi schrieb:

    Eine Liste von E-Mails
    und wie deklariert?
    Was erwartet New Dictionary(Of x, y) von Dir an der Stelle y?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    iEi schrieb:

    Message ist Eine Liste von E-Mails.
    Passt das zusammen?
    Nein.
    Richtig. Also :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Liegt es vielleicht am TreeNodeBuilder ?

    VB.NET-Quellcode

    1. Imports System.Windows.Forms
    2. Imports OpenPop.Mime
    3. Imports OpenPop.Mime.Traverse
    4. Imports Message = OpenPop.Mime.Message
    5. Namespace Core
    6. Friend Class TreeNodeBuilder
    7. Implements IAnswerMessageTraverser(Of TreeNode) 'VIELLEICHT HIERAN ?
    8. Public Function VisitMessage(ByVal message As Message) As TreeNode
    9. If message Is Nothing Then
    10. Throw New ArgumentNullException("message")
    11. End If
    12. Dim child As TreeNode = VisitMessagePart(message.MessagePart)
    13. Dim topNode As New TreeNode(message.Headers.Subject, New Object() {child})
    14. Return topNode
    15. End Function
    16. Public Function VisitMessagePart(ByVal messagePart As MessagePart) As TreeNode
    17. If messagePart Is Nothing Then
    18. Throw New ArgumentNullException("messagePart")
    19. End If
    20. Dim children As TreeNode() = New TreeNode(-1) {}
    21. If messagePart.IsMultiPart Then
    22. children = New TreeNode(messagePart.MessageParts.Count - 1) {}
    23. For i As Integer = 0 To messagePart.MessageParts.Count - 1
    24. children(i) = VisitMessagePart(messagePart.MessageParts(i))
    25. Next
    26. End If
    27. Dim currentNode As New TreeNode(messagePart.ContentType.MediaType, children)
    28. currentNode.Tag = messagePart
    29. Return currentNode
    30. End Function
    31. End Class
    32. End Namespace

    VB.NET-Quellcode

    1. Imports OpenPop.Mime
    2. Imports OpenPop.Mime.Header
    3. Imports OpenPop.Pop3
    4. Imports OpenPop.Pop3.Exceptions
    5. Imports OpenPop.Common.Logging
    6. Imports Message = OpenPop.Mime.Message
    7. Imports ThunderMail.Core
    8. Public Class Form1
    9. Private ReadOnly messages As New Dictionary(Of Integer, Message)()
    10. Private ReadOnly pop3Client As Pop3Client
    11. Dim list As New List(Of String)
    12. Public Shared Function FetchUnseenMessages(ByVal hostname As String, ByVal port As Integer, ByVal useSsl As Boolean, ByVal username As String, ByVal password As String, ByVal seenUids As List(Of String)) As List(Of Message)
    13. Using client As New Pop3Client()
    14. client.Connect(hostname, port, useSsl)
    15. client.Authenticate(username, password)
    16. Dim uids As List(Of String) = client.GetMessageUids()
    17. Dim newMessages As New List(Of Message)()
    18. For i As Integer = 0 To uids.Count - 1
    19. Dim currentUidOnServer As String = uids(i)
    20. If Not seenUids.Contains(currentUidOnServer) Then
    21. Dim unseenMessage As Message = client.GetMessage(i + 1)
    22. newMessages.Add(unseenMessage)
    23. Dim message As Message = client.GetMessage(i)
    24. messages.Add(i, message)
    25. Dim node As TreeNode = New TreeNodeBuilder().VisitMessage(message)
    26. node.Tag = i
    27. Form1.listMessages.Nodes.Add(node)
    28. seenUids.Add(currentUidOnServer)
    29. End If
    30. Next
    31. Return newMessages
    32. End Using
    33. End Function
    34. Private Sub MetroButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MetroButton1.Click
    35. ContextMenuStrip1.Show(MetroButton1, New Point(0, MetroButton1.Height))
    36. End Sub
    37. Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click
    38. End
    39. End Sub
    40. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    41. If My.Settings.firstRun = False Then
    42. FirstStart.Show()
    43. My.Settings.firstRun = True
    44. My.Settings.Save()
    45. Else
    46. If My.Computer.Network.IsAvailable = True Then
    47. FetchUnseenMessages(My.Settings.IncomingServer, My.Settings.IncomingPort, True, My.Settings.userMailAdress, My.Settings.userMailPassword, list)
    48. Else
    49. MsgBox("Sie haben keine Verbindung zu einem Netzwerk.Sie sind nun Offline.", MsgBoxStyle.Critical)
    50. Bugtracker.RichTextBox1.Text = Bugtracker.RichTextBox1.Text & vbCrLf & "$retried_no:connection"
    51. End If
    52. End If
    53. Me.Text = My.Settings.userMailAdress & " - ThunderMail"
    54. If My.Computer.Network.IsAvailable = True Then
    55. ToolStripButton6.ToolTipText = "Sie sind Online"
    56. StatusLbl.Text = "Sie sind Online."
    57. Else
    58. ToolStripButton6.ToolTipText = "Sie sind mit keinem Netzwerk verbunden."
    59. StatusLbl.Text = "Sie sind mit keinem Netzwerk verbunden."
    60. End If
    61. End Sub
    62. End Class
    Die Funktion ist Shared und die Variable nicht.
    Entweder du machst die Variable auch Shared oder die Funktion halt nicht.

    Mischen geht leider nicht. (Zumindest nicht so wie du. Umgekehrt jedoch schon (Variable Shared - Funktion non Shared))

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten