Ok, ich habe hier wahrscheinlich nur ein episches Scheitern, aber mein Verstand möchte sagen, dass das funktionieren sollte.
Angenommen, DataProtect.DecryptData verwendet eine verschlüsselte Zeichenfolge als Eingabe und eine entschlüsselte Zeichenfolge als Ausgabe. Nehmen wir an, deserializeXML erstellt das entsprechende Objekt und gibt es aus der neu entschlüsselten Zeichenfolge zurück.
Also. Warum sollte das nicht funktionieren?
%Vor%Gibt mir einen Fehler von
%Vor%Genauer gesagt, wie kann ich das zum Laufen bringen? Ich möchte im Wesentlichen eine serialisierte XML-Version des Objekts entschlüsseln und dann im Konstruktor deserialisieren.
Ich bin offen für "Sie können nicht" (mit einer Erklärung), wie ich es anderswo ausdrücken kann und nur Werte zuweisen, aber mein Verstand sagt, dass so etwas möglich sein sollte.
Sie können "this" nichts zuweisen. Ändern Sie ArriveDetails in eine statische Datei, die das deserialisierte Objekt zurückgibt.
%Vor%Sie können dies mit Reflektion wie folgt archivieren:
%Vor% Dies weist das deserialisierte Objekt einer temporären Variablen zu und kopiert den Wert in jeder öffentlichen Eigenschaft in this
mit Reflection. Dieser Ausschnitt vermeidet das Kopieren von Eigenschaften mit dem XmlIgnore-Attribut.
Nein, dies ist mit einem Konstruktor nicht möglich, Sie können %code% nicht neu zuweisen.
Verwenden Sie stattdessen eine statische Methode:
%Vor%Rufen Sie es an:
%Vor%Was Sie möchten, ist eine statische Factory-Methode, die das gewünschte Objekt erstellt.
%Vor%Der Grund dafür, dass Ihr ursprünglicher Ansatz nicht funktioniert hat, ist, dass %code% ein privates schreibgeschütztes Instanzfeld ist, das das Objekt zurückgibt, von dem es aufgerufen wurde. Sie können nicht in %code% schreiben.
Ok, ich habe hier wahrscheinlich nur ein episches Scheitern, aber mein Verstand möchte sagen, dass das funktionieren sollte.
Angenommen, DataProtect.DecryptData verwendet eine verschlüsselte Zeichenfolge als Eingabe und eine entschlüsselte Zeichenfolge als Ausgabe. Nehmen wir an, deserializeXML erstellt das entsprechende Objekt und gibt es aus der neu entschlüsselten Zeichenfolge zurück.
Also. Warum sollte das nicht funktionieren?
%Vor%Gibt mir einen Fehler von
%Vor%Genauer gesagt, wie kann ich das zum Laufen bringen? Ich möchte im Wesentlichen eine serialisierte XML-Version des Objekts entschlüsseln und dann im Konstruktor deserialisieren.
Ich bin offen für "Sie können nicht" (mit einer Erklärung), wie ich es anderswo ausdrücken kann und nur Werte zuweisen, aber mein Verstand sagt, dass so etwas möglich sein sollte.
Sie können "this" nichts zuweisen. Ändern Sie ArriveDetails in eine statische Datei, die das deserialisierte Objekt zurückgibt.
%Vor%Was Sie möchten, ist eine statische Factory-Methode, die das gewünschte Objekt erstellt.
%Vor% Der Grund dafür, dass Ihr ursprünglicher Ansatz nicht funktioniert hat, ist, dass this
ein privates schreibgeschütztes Instanzfeld ist, das das Objekt zurückgibt, von dem es aufgerufen wurde. Sie können nicht in this
schreiben.
Tags und Links c# serialization object