asp.net - Serialize Control to viewstate -


i'm writing custom user control. feel i'm doing hard way.

i understand in order control's state preserved between postbacks, have save data viewstate. i've done several fields in user control's class.

however, seems tedious. there way make asp.net save serializable fields in user control viewstate @ once when page done loading?

i have solution still need adapt situation because sample (re)stores state of control, properties set asp.net runtime. remember serializable not settable on property of field, class/struct. can create own attribute (viewstateserializable?) use decorate properties want retain during postbacks. remember viewstate going on wire client if have lot of users might upset....

protected override object saveviewstate()         {             dictionary<string, object > dict = new dictionary<string, object>();             foreach (var prop in this.gettype().getproperties())             {                 // here decide save                 if (prop.propertytype.getcustomattributes(                       typeof(serializableattribute), false).length>0)                 {                     dict.add(prop.name, prop.getvalue(this, new object[] {}));                 }             }              var ms = new memorystream();             binaryformatter bf = new binaryformatter();             bf.serialize(ms, dict);              return ms.toarray();         }  protected override void loadviewstate(object savedstate)         {             binaryformatter bf = new binaryformatter();             dictionary<string, object> dict =                  (dictionary<string, object>) bf.deserialize(                 new memorystream((byte[])savedstate));              foreach(var kv in dict)             {                 this.gettype()                     .getproperty(kv.key)                     .setvalue(this, kv.value, new object[] {});             }             base.loadviewstate(savedstate);         } 

Comments

Popular posts from this blog

python - Scipy curvefit RuntimeError:Optimal parameters not found: Number of calls to function has reached maxfev = 1000 -

c# - How to add a new treeview at the selected node? -

java - netbeans "Please wait - classpath scanning in progress..." -