Programmieren ohne Verweis auf Microsoft.VisualBasic

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von EaranMaleasi.

    Programmieren ohne Verweis auf Microsoft.VisualBasic

    Hallo,

    nachdem ich in vielen Quellen erfahren habe, dass bei der Programmierung in VB.net der Verweis auf "Microsoft.VisualBasic" unbedingt deaktiviert werden sollte, habe ich angefangen, die Befehle im Quellcode dahingehend anzupassen, dass diese ohne diese Library auskommen.

    Bei einem Befehl komme ich nun nicht weiter, da hierfür kein alternativer Befehl gefunden wurde:

    VB.NET-Quellcode

    1. FileSystem.Reset


    Dieser Befejl ist auf die abzuschaltende Library angewiesen.

    Gibt es hierfür eine Alternative?
    Die Reset-Funktion schließt alle Dateien, die mit FileOpen geöffnet werden. Da du den VisualBasic-Namespace ja nicht mehr nutzt, ist also auch ​FileOpen nicht mehr dabei. Das Ganze brauchst du also meines Erachtens nach garnicht.

    Oder wie sieht dein Code aus?
    Grüße
    Felix
    @BigBen2003 Glückwunsch zum Rausschmiss vom Microsoft.VisualBasic-Namespace.
    Dies ist ein Kompatibilitäts-Ersatz für Nicht-.NET-VB-Befehle.
    Sieh also nicht auf den einzelnen Befehl und was der tut, sondern überleg, was Du insgesamt mit dieser Datei anfangen willst.
    Im Namespace IO.File findest Du alles, was Du dazu benötigst.
    Und wenn Du den Befehl nicht gleich findest, frag hier, indem Du beschreibst, was Du machen willst.
    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!
    Hallo,

    vielen Dank für die Informationen.

    Der "Reset" Befehl ist ersatzlos gestrichen worden. Ein FileOpen-Befehl wurde durch "FileStream" und "StreamWriter" ersetzt.

    Mit Hilfe dieser Befehle wird eine bestehende Log-Datei ergänzt:
    Spoiler anzeigen

    sDirFile (String) beinhaltet dn kompletten Pfad zu einer Log-Datei
    ErrorType (EventLogEntryType) beinhaltet die wegzuschreibende Fehler-Info
    nw (Date) = verweist auf eine Zeit

    VB.NET-Quellcode

    1. Try
    2. fs1 = New FileStream(sDirFile, FileMode.Append, FileAccess.Write)
    3. s1 = New StreamWriter(fs1)
    4. 'nw = Now
    5. Select Case ErrorType
    6. Case EventLogEntryType.Error
    7. sErrType = "Fehler"
    8. Case EventLogEntryType.FailureAudit
    9. sErrType = "Fehlerhafte Prüfung"
    10. Case EventLogEntryType.Information
    11. sErrType = "Info"
    12. Case EventLogEntryType.SuccessAudit
    13. sErrType = "Erfolgreiche Prüfung"
    14. Case EventLogEntryType.Warning
    15. sErrType = "Warnung"
    16. Case Else
    17. sErrType = ErrorType.ToString
    18. End Select
    19. s1.Write("Title: " & Title & Environment.NewLine)
    20. s1.Write("Message: " & msg & Environment.NewLine)
    21. s1.Write("StackTrace: " & stkTrace & Environment.NewLine)
    22. s1.Write("ErrorType: " & sErrType & Environment.NewLine)
    23. s1.Write("Date/Time: " & nw.ToString() & Environment.NewLine)
    24. s1.Write("================================================" & Environment.NewLine)
    25. Finally
    26. If fs1 IsNot Nothing Then
    27. fs1.Close()
    28. fs1 = Nothing
    29. End If
    30. If s1 IsNot Nothing Then
    31. s1.Close()
    32. s1 = Nothing
    33. End If
    34. End Try


    ThuCommix schrieb:

    außerdem
    Hier ist .Close() und .Dispose() völlig äquivalent, sagt die Codeanalyse.
    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!