Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

kurze frage meinerseits warum schreibst du eine klasse in einer klasse?

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 :-)

  • Autor
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

  • Autor

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.