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); }