Serialisierungen mit Unknown-Datentype

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

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Serialisierungen mit Unknown-Datentype

    Hallo Community

    Bin wieder an meinem TCP-Projekt.

    Die Daten lass ich serialisiert (mach ich selber mit Binary) auf die andere Seite transportieren. Klappt alles perfekt.

    Nun stellt sich für mich aber die Frage, gibt es auch eine Möglichkeit serialisierte Daten auf die andere Seite zu transportieren, wo der Klassentype (UnKnown) für das Deserialisieren nicht bekannt ist.

    Einfaches Beispiel:

    VB.NET-Quellcode

    1. <Serializable>
    2. Public Class Foo
    3. Public Bar As Bar
    4. Public Time As DateTimeOffset
    5. End Class
    6. <Serializable>
    7. Public Class Bar
    8. Public Name As String
    9. Public Cost As Decimal
    10. End Class

    Lass ich die serialisierten Daten rüber reichen, müssen nochmalerweise für das Deserialisieren beide Klassen bekannt sein, oder doch nicht?

    Ich würde gerne eine Möglichkeit haben, die es mir erlaubt quasi jeden Klassentype (auch Kombis) an der Gegenstelle aufzulösen, um mit den Daten arbeiten zu können.

    Gibt's da schon Möglichkeiten mit Json, oder mit der von Microsoft XML. Eventuell auch eine Binary-Variante?

    Danke für die Antworten.

    Freundliche Grüsse

    exc-jdbi
    Mit Newtonsoft.Json kann man so etwas hier machen:

    C#-Quellcode

    1. public class Foo
    2. {
    3. public string Id { get; set; }
    4. [JsonExtensionData]
    5. public Dictionary<string, object> Fields { get; set; }
    6. }

    Das nutze ich an stellen bei denen ich es etwas generischer brauche bzw. die Klasse für mehrere Objekte benutzte.
    Vielleicht hilft dir das irgendwie weiter.
    Hast recht. Vb.Net kennt nur den Typ Object.

    Der String von Json ist trotzdem noch interessant. Json bietet hier Sachen wie JObject, JToken, Children, JProperty und weiteres.
    Frage mich gerade, ob überhaupt bei Unknown-Datatypes schlussendlich eine Deserialisierung gemacht werden muss, wenn es auch noch andere Möglichkeiten gibt, den Json-String komplett zu analysieren und die Daten zu extrahieren.

    Ich würde eine Möglichkeit über einer Deserialisierung bevorzugen. Wer also weitere Möglichkeiten weiss, bitte her damit. Danke.

    Freundliche Grüsse

    exc-jdbi

    exc-jdbi schrieb:

    Ich würde gerne eine Möglichkeit haben, die es mir erlaubt quasi jeden Klassentype (auch Kombis) an der Gegenstelle aufzulösen, um mit den Daten arbeiten zu können.
    Wenn dus so gemeint hast, wie dus schreibst, dann geht das nicht.
    Kein Programm kann mit Daten arbeiten, deren Typ nicht bekannt sind.

    Zum Thema Json gibts einiges im Tut bereich - nicht nur Serialisierung.
    Ich glaub ich hab da auch ein Tut verzapft, wo auch das Json-Objekt-Modell erläutert wird (JObject, JArray, JProperty).
    Aber das findet man auch im Internet.