Object (Design) Serialisierung



  • Hallo Leute,

    ich habe folgenden Umstand; Ich habe "Records" welche jeweils einen Verweiß zu deren "Entity" haben! (siehe Code)

    Nun will ich jede Record Implementation (hier MyRecordA u. MyRecordB) serialisieren, ohne dass das IEntity Info Property berücksichtig wird. So dass ich quasi nur die Nutzdaten aus den Record Implemtation bekommen, und die Entity ignorieren.

    Damit ich nich das ganze Design umwerfen muss, wäre ich um Vorschläge dankbar 🙂

    interface IEntity
    {
    ....
    }
    
    interface IRecord
    {
       IEntity Info{get;}
    
       DateTime TimeStamp{ get; }
    }
    
    class MyRecordA : IRecord
    {
       IEntity Info{get;}
    
       DateTime TimeStamp{ get; }
    
       int DataA{get;}
    
       string DataB {get;}
    
    class MyRecordB : IRecord
    {
       IEntity Info{get;}
    
       DateTime TimeStamp{ get; }
    
       doubleDataX{get;}
    
       bool DataY {get;}
    }
    


  • Markier das Property doch als NonSerialized



  • Hm.. ohh, danke 🙂 kurz und knackig.. wusste ich dass es auch so ein attribut gibt , danke;)



  • Nun frage ich mich aber, wieso man das NonSerialized Attribute nur über Felder, udn nich über Properties definieren kann!!!?



  • NullbockException schrieb:

    Nun frage ich mich aber, wieso man das NonSerialized Attribute nur über Felder, udn nich über Properties definieren kann!!!?

    Ist ja kein Beinbruch, du kannst ja ein Backingfield fuer deine Property anlegen und das dann markieren.



  • d.h. wenn ich das Feld mit NonSerialized Attribute versehe, werden die Property (ies) welches dieses als Backinfied verwendet nicht serialisiert, oder wie soll ich das verstehen?



  • NullbockException schrieb:

    d.h. wenn ich das Feld mit NonSerialized Attribute versehe, werden die Property (ies) welches dieses als Backinfied verwendet nicht serialisiert, oder wie soll ich das verstehen?

    Propier dat doch ma aus 🙂



  • NullbockException schrieb:

    d.h. wenn ich das Feld mit NonSerialized Attribute versehe, werden die Property (ies) welches dieses als Backinfied verwendet nicht serialisiert, oder wie soll ich das verstehen?

    Properties sind nur setter und getter - es sind keine echte Daten. .NET legt dir automatisch ein Backingfield an. Das kannst du auch händisch anlegen. Und es werden natürlich nur die Daten serialisiert - ein Property ist ja nur ein Accessor. Serialisiert werden die Daten Member (und für ein Propery gibt es eben das entsprechende Backingfield).



  • ok, vielen danke freunde, habs ausprobiert und verstanden;) grüße


Anmelden zum Antworten