public void Add(ByteStringDataType key, DataTypeBase value)
        {
            if (key == null)
            {
                throw new ArgumentNullException("key");
            }
            if (value == null)
            {
                throw new ArgumentNullException("value");
            }

            lock (_lockObject)
            {
                if (_valueMap.ContainsKey(key.Value))
                {
                    var data = _valueMap[key.Value];
                    if (value is ListDataType && data is ListDataType)
                    {
                        var list  = value as ListDataType;
                        var olist = data as ListDataType;

                        list.ForEach(olist.Add);
                    }
                }
                else
                {
                    _valueMap.Add(key.Value, value);
                    _keyMap.Add(key.Value, key);
                }
            }
        }
        /// <summary>
        /// 创建一个 <see cref="ByteStringDataType"/> 类型的节点
        /// </summary>
        /// <param name="encoding"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static ByteStringDataType Create(Encoding encoding, string value)
        {
            var node = new ByteStringDataType
            {
                TextEncoding = encoding
            };

            node.Value = value;

            return(node);
        }