Example #1
0
 //============================================================
 // <T>从文档节点中建立哈希表。</T>
 //
 // @param parent 文档元素
 // @param map 文档节点哈希表
 //============================================================
 public static void BuildMap(FXmlNode parent, FXmlNodeMap map)
 {
     if ((parent != null) && parent.HasNode())
     {
         foreach (FXmlNode node in parent.Nodes)
         {
             map.Set(node.Name, node);
         }
     }
 }
Example #2
0
 //============================================================
 // <T>从文档节点中建立属性表。</T>
 //
 // @param parent 文档元素
 // @param attributes 属性列表
 //============================================================
 public static void BuildAttributes(FXmlNode parent, FAttributes attributes)
 {
     if ((parent != null) && parent.HasNode())
     {
         foreach (FXmlNode node in parent.Nodes)
         {
             attributes[node.Name] = node.Text;
         }
     }
 }
Example #3
0
 //============================================================
 // <T>加载设置信息。</T>
 //
 // @param config 加载设置信息
 //============================================================
 public void LoadConfigNode(FXmlNode config)
 {
     if (config.HasNode())
     {
         foreach (FXmlNode node in config.Nodes)
         {
             if (node.IsName(FXmlObjectConfig.TAG))
             {
                 FXmlObjectConfig nodeConfig = new FXmlObjectConfig();
                 nodeConfig.LoadConfig(node);
                 _configs.Push(nodeConfig);
             }
         }
     }
 }
Example #4
0
        //============================================================
        // <T>加载节点成为一个文档对象。</T>
        //
        // @param T 对象类型
        // @param node 设置节点
        // @return 文档对象
        //============================================================
        public T LoadNode <T>(FXmlNode node)
            where T : IXmlObject
        {
            FXmlObjectConfig config = _configs[node.Name];

            if (null != config)
            {
                // 创建实例
                T instance = config.CreateInstance <T>();
                _context._parent = null;
                _context._config = node;
                instance.LoadConfig(_context);
                // 加载子节点
                if (node.HasNode())
                {
                    LoadNodes(instance, node.Nodes);
                }
                return(instance);
            }
            return(default(T));
        }