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

also ich kenn das eigentlich nur dass man von Klassen erbt oder ableitet. Klassen zu verschachteln macht aus meiner Sicht nich soviel Sinn. Frage ja auch nur interessehalber :-)

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...