public virtual void getEdit <T, P>() where T : class where P : class { string message = "{}"; try { string record = this.Request["record"]; Hashtable ht = JavaScriptConvert.DeserializeObject <Hashtable>(record); List <ColumnInfo> parameters = JavaScriptConvert.DeserializeObject <List <ColumnInfo> >(ht["keycolumns"].ToString()); P obj = JavaScriptConvert.DeserializeObject <P>(ht["params"].ToString()); T bll = (T)typeof(T).GetConstructor(new Type[] { }).Invoke(new object[] { }); BaseBll baseBll = bll as BaseBll; baseBll.DoUpdate <P>(obj, parameters); message = "{status:'success',msg:'" + HRMSRes.Public_Message_EditWell + "'}"; } catch (Exception ex) { message = "{status:'failure',msg:'" + ExceptionPaser.Parse(HRMSRes.Public_Message_EditBad, ex, true) + "'}"; } Response.Write(message); }