Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Ich habe eine Klasse die ich gerne serialisieren würde, diese Klasse enthält eine weitere Klasse mit Daten und einen string mit der Signatur dieser Daten.

Also so in der Art:


[Serializable()]
public class MyFile
{
[Serializable()]
public class MyInformation
{
public string LastName;
public string FirstName;
}
public MyInformation MyInfo;
public string MyKey;
}
[/PHP]

Ich erstelle mir die Signatur der Daten mit der RSACryptoServiceProvider und schreib die dann in das MyKey Feld, danach will ich die gesamte Klasse in eine Datei serialisieren.

Das klappt soweit auch mit dem XMLSerializer, allerdings bekomme ich dann beim deserialisieren immer die Meldung das da ungültige Zeichen drin enthalten wären (sind in der Signatur).

Wie bekomme ich die vernünftig serialisiert und wieder deserialisiert? Habs noch mit dem BinaryFormatter versucht allerdings schreibt der immer einen Header mit dem Namen der Assembly die das serialisiert hat und verlangt diese dann beim deserialisieren...

Geschrieben (bearbeitet)
Klassen zu verschachteln macht aus meiner Sicht nich soviel Sinn.

Das macht sogar jede Menge Sinn ;)

In dem Fall zum Beispiel das MyInformation nur innerhalb von MyFile benötigt wird. Zwar kann man trotzdem auch einfach so eine Instanz von MyInformation erstellen, aber es ist gekapselter und es könnte zum Beispiel auch im selben Namensraum eine andere Klasse mit selbem Namen existieren.

Aber um mal auf mein Problem zurück zu kommen, ich hab mal versucht die Signatur noch mit Convert.ToBase64String umzuwandeln und auf der anderen Seite entsprechend zurück. Jetzt lässt sich alles wieder deserialisieren und ich sehe auh keinen Unterschied in den Inhalten, aber VerifyData schlägt trotzdem fehl...

Bearbeitet von Guybrush Threepwood
Geschrieben
Jetzt lässt sich alles wieder deserialisieren und ich sehe auh keinen Unterschied in den Inhalten, aber VerifyData schlägt trotzdem fehl...
Deserialisiert du denn wieder in einen String? Ich glaube nicht, dass das für binäre Daten der richtige Typ ist.
Geschrieben

Das wird zurück in die selbe Klasse deserialisiert.

Ich hab durch etwas rumprobieren eine Vermutung wo das Problem liegt. Denn es funktioniert alles wenn es im selben Programm stattfindet. Nur wenn das deserialisierende Programm ein anderes ist klappt das nicht und ich vermute das liegt daran das im Datentyp die Assemblyinformationen drin stecken und diese mit signiert werden.

Weil im Moment ist es noch so das ich in beiden Programmen zweimal die selbe Klasse angelegt habe, wenn ich die Klasse in einer Assembly anlege und diese dann in beiden Programmen referenziere wird es vermutlich funktionieren.

Konnte ich aber eben nicht mehr testen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...