Пример #1
0
        public static void EMLoadXml(this IBxPersistStorageNode persist, XmlElement xmlNode)
        {
            BxStorage stg = new BxStorage();

            stg.LoadXml(xmlNode);
            persist.LoadStorageNode(stg.RootNode);
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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);
                    }
                }
            }
        }