Example #1
0
        public BulkDescription(XmlElement desc)
        {
            _description = desc;

            _columns = new BulkColumnCollection();
            foreach (XmlElement each in desc.SelectNodes("//Field"))
            {
                BulkColumn column = new BulkColumn(each);

                try
                {
                    _columns.Add(column.FullDisplayText, column);
                }
                catch (ArgumentException ex)
                {
                    throw new XmlParseException("載入欄位資訊錯誤,可能是欄位名稱重覆。(" + column.FullDisplayText + ")", each, ex);
                }
            }

            _generators = new List <ElementGenerator>();
            foreach (XmlNode each in desc.ChildNodes)
            {
                if (each.NodeType == XmlNodeType.Element)
                {
                    _generators.Add(new ElementGenerator(each as XmlElement));
                }
            }
        }
        /// <summary>
        /// 取得與 columns 參數交集的欄位資訊。
        /// </summary>
        public BulkColumnCollection GetInstersection(string[] columns)
        {
            BulkColumnCollection cols = new BulkColumnCollection();

            foreach (string each in columns)
            {
                if (ContainsKey(each))
                {
                    BulkColumn column = this[each];
                    cols.Add(column.FullDisplayText, column);
                }
            }

            return(cols);
        }