private void SaveLayout(ControlLayout layout, object control) { using (MemoryStream stream = new MemoryStream()) { try { MethodInfo mi = GetLayoutMethod(control.GetType(), "SaveLayoutToStream"); mi.Invoke(control, new object[] { stream }); layout.Layout = stream.ToArray(); } finally { stream.Close(); } } }
private void RestoreLayout(ControlLayout layout, object control) { if (layout.Layout == null) { return; } using (MemoryStream stream = new MemoryStream(layout.Layout)) { try { MethodInfo mi = GetLayoutMethod(control.GetType(), "RestoreLayoutFromStream"); mi.Invoke(control, new object[] { stream }); } finally { stream.Close(); } } }
private ControlLayout GetControlLayout(object control) { ControlLayout layout = null; string key = fControls[control]; foreach (ControlLayout item in deserializedCache) { if (item.ControlID == key) { layout = item; break; } } if (layout == null) { layout = new ControlLayout(key); deserializedCache.Add(layout); } return(layout); }