2017-08-30 4 views
0

ich diese Klasse habenC# benutzerdefinierte Serialisierung und Deserialisierung einfache Klasse

class MyClass{ 
    int x; 
    byte[] arr; 
} 

ich möchte es serialisiert eine Textdatei, sondern auf individuelle Art und Weise.

Ich möchte, bevor ich den x Wert schreibe ich möchte schreiben: Der x-Wert ist: x.

und etwas manipulieren auf dem arr (wie +1 auf jeden Wert) und Registerkarte verschieben.

und dann „der Wert wieder“ der Wert von X „einen schönen Tag“ mit Tab

wie kann ich so zu txt-Datei serialisiert,

und wie kann ich aus txt-Datei deserialisieren so zu MyClass?

zum Beispiel: x = 4, arr = {1,2,3} die txt-Datei

the value of X is: 4 
    arr is: 2,3,4 
    the value again is:5 have a nice day 

sein wird, wie kann ich dies tun, bitte? Ich möchte nicht spezielle Get-Eigenschaft für diese Var zu tun, weil ich auf meinem Programm diese Get verwenden.

Antwort

1

Serialisieren ist anders als das, was Sie zu tun versuchen, aber wenn Sie spezielle formatierte Ausgaben wollen, einige würden eine Überschreibung der Methode ToString() tun, aber man kann eine andere Methode so etwas wie einfach erstellen ...

public string textOutput() 
    { 
     var sb = new StringBuilder(); 
     sb.AppendFormat("the value of X is: {0}\r\n arr is: ", x); 
     for (var i = 0; i < arr.Length; i++) 
      sb.AppendFormat("{0}{1}", i == 0 ? "" : ", ", arr[i]); 

     // don't know where your 5 value is coming from though... but place-holdered it 
     sb.AppendFormat("\r\n  the value again is: {0} have a nice day", 5); 

     return sb.ToString(); 
    } 

und schreiben Sie Ihre Ausgabe nach Bedarf. Oder Sie können dies als eine eigene Getter-Eigenschaft erstellen und das auch.

Verwandte Themen