Thursday 15 September 2011

c# - Run code after deserialization -



c# - Run code after deserialization -

i'm using restsharp deserialize data. works fine , info loads correctly, 1 of fields in csv format (i can't alter unfortunately) , need parse out info , load object.

what way construction class code within loaddata() run when "data" object receives value? want avoid running loaddata on own before can utilize every object, skaterdata object created 20+ times.

this class construction looks like:

public class skaterdata { public int id { get; set; } public string info { get; set; } public playerdata playerdata { get; set; } public void loaddata() { var datarows = data.split(','); playerdata = new playerdata(int32.parse(datarows[0]), datarows[1], datarows[2]); } } public class playerdata { public int number { get; set; } public string position { get; set; } public string name { get; set; } public playerdata(int number, string position, string name) { this.name = name; this.position = position; this.number = number; } }

both getters , setters functions means can write this:

private string _data; public int id { get; set; } public string info { { homecoming _data; } set { _data = value; loaddata(); } } public playerdata playerdata { get; set; } public void loaddata() { var datarows = data.split(','); playerdata = new playerdata(int32.parse(datarows[0]), datarows[1], datarows[2]); }

in above code sample, explicitly defined data property (which syntax using sytantic sugar for). added calling loaddata setter of property.

since setter called on deserialization (probably) may need different variant of have, hard based on problem statement.

c# restsharp

No comments:

Post a Comment