public static void EMLoadXml(this IBxPersistStorageNode persist, XmlElement xmlNode) { BxStorage stg = new BxStorage(); stg.LoadXml(xmlNode); persist.LoadStorageNode(stg.RootNode); }
public void SaveStorageNode(IBxStorageNode node) { FieldInfo[] fields = this.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); IBxStorageNode subNode; foreach (FieldInfo one in fields) { if (one.GetCustomAttributes(typeof(BxCarrierElement), false).Length > -1) { IBxPersistStorageNode ele = one.GetValue(this) as IBxPersistStorageNode; subNode = node.CreateChildNode(BxStorageLable.nodeEle); ele.SaveStorageNode(subNode); } } }
public void LoadStorageNode(IBxStorageNode node) { FieldInfo[] fields = this.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); IEnumerable <IBxStorageNode> childs = node.ChildNodes; using (IEnumerator <IBxStorageNode> itor = childs.GetEnumerator()) { itor.Reset(); foreach (FieldInfo one in fields) { if (one.GetCustomAttributes(typeof(BxCarrierElement), false).Length > -1) { IBxPersistStorageNode ele = one.GetValue(this) as IBxPersistStorageNode; if (!itor.MoveNext()) { break; } ele.LoadStorageNode(itor.Current); } } } }