public DataCollection Serialize(ITypeSerializer handler) { DataCollection dc = handler.Serialize(this); dc.Extract("filters"); dc.Extract("icon"); DataItem filtersItem = new DataItem(); filtersItem.Name = "filters"; dc.Add(filtersItem); foreach (ToolboxItemFilterAttribute tbfa in itemFilters) { DataItem item = new DataItem(); item.Name = "filter"; item.ItemData.Add(new DataValue("string", tbfa.FilterString)); item.ItemData.Add(new DataValue("type", System.Enum.GetName(typeof(ToolboxItemFilterType), tbfa.FilterType))); filtersItem.ItemData.Add(item); } if (icon != null) { DataItem item = new DataItem(); item.Name = "icon"; dc.Add(item); MemoryStream ms = new MemoryStream(); icon.Save(ms, Xwt.Drawing.ImageFileType.Png); string iconString = Convert.ToBase64String(ms.ToArray()); item.ItemData.Add(new DataValue("enc", iconString)); } return(dc); }