vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Serialisierung 
Autor: Zero-G.
Datum: 22.08.07 11:01

Hallo NG

Ich nutze VB.NET 2005.
Seit einiger Zeit experimentiere ich mit Serialiserung von Daten. - Inzwischen dachte ich, dass ich das Thema im Griff habe. - Leider nicht...
Ich nutze folgende Klasse:
<Serializable()> Public Class clsLagerzugang
    Implements Runtime.Serialization.ISerializable, _
    Runtime.Serialization.IDeserializationCallback
 
    Public InvNr As String:    Public Lieferant As Integer
    Public Artikelnummer As String :    Public Grösse As String
    Public Farbe As String :    Public ICode As Long
    Public Artikelbezeichnung As String :    Public Menge As Integer
    Public EPreis As Decimal :    Public VPreis As Decimal
    Public Datum As Date 
 
    Public Sub GetObjectData(ByVal info As _
      System.Runtime.Serialization.SerializationInfo, ByVal context As _
      System.Runtime.Serialization.StreamingContext) Implements _
      System.Runtime.Serialization.ISerializable.GetObjectData
 
        info.AddValue("InvNr", InvNr)
        ' (Wegen Länge der Nachricht auf nur einen Eintrag gekürzt)
    End Sub
    Public Sub New( _
        ByVal info As Runtime.Serialization.SerializationInfo, _
        ByVal context As Runtime.Serialization.StreamingContext)
        ' Hier kommt der Fehler
        InvNr = info.GetValue(InvNr, GetType(String))
        ' (Wegen Länger der Nachricht auf nur einen Eintrag gekürzt)
    End Sub
End Class
Das Serialisieren in eine mySQL Datenbank funktioniert wunderbar. - Folgenden Code benutze ich beim deserialisieren:
        mySQLConnection.Open()
        mySQLCommand.Connection = mySQLConnection
        mySQLCommand.CommandText = "Select Artikel, Gebucht, Übertragen from " _
          & _
            "LagZugang where Art=03 and FilialCode='" & FilialCode & "'"
        Dim dAdapter As New CoreLab.MySql.MySqlDataAdapter(mySQLCommand)
        Dim dTable As New System.Data.DataTable
        dAdapter.Fill(dTable)
        prgBar.Maximum = dTable.Rows.Count : prgBar.Value = 0
        For Each dRow As System.Data.DataRow In dTable.Rows
            Dim b As Byte() = CType(dRow("Artikel"), Byte())
 
            Dim Stream As New System.IO.MemoryStream(b)
            Dim usr As New clsLagerzugang
            Dim form As New _
              Runtime.Serialization.Formatters.Binary.BinaryFormatter()
            usr = form.Deserialize(Stream)
Das Problem liegt jetzt bei folgender Code Sequenz: - usr = form.Deserialize(Stream) - Danach hüpft das Programm (so wie es sollte) in die Klasse zum SubNew mit Serialisierung. - Dort kann ich im DebugModus alle Variablen auslesen. - Also d.h. die deserialisierung funktioniert. - Aber sobald das Programm auf eine CodeZeile innerhalb von Sub New kommt, bekomme ich folgende Fehlermeldung:
System.Reflection.TargetInvocationException was caught
Message="Ein Aufrufziel hat einen Ausnahmefehler verursacht."
Source="mscorlib"
StackTrace:
bei System.RuntimeMethodHandle._SerializationInvoke(Object target, SignatureStruct& declaringTypeSig, SerializationInfo info, StreamingContext context)
bei System.RuntimeMethodHandle.SerializationInvoke(Object target, SignatureStruct declaringTypeSig, SerializationInfo info, StreamingContext context)
bei System.Reflection.RuntimeConstructorInfo.SerializationInvoke(Object target, SerializationInfo info, StreamingContext context)
bei System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context)
bei System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder)
bei System.Runtime.Serialization.ObjectManager.DoFixups()
bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)
bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream)
bei Optik.frmLagerZugang.FillData(String FilialCode)
Woran kann das liegen?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Serialisierung1.009Zero-G.22.08.07 11:01

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel