/** * 放入一个元素 * @param <T> * @param name * @param t */ public void Put <T>(string name, T t) { if (name == null) { throw new ArgumentException("put key can not is null"); } if (t == null) { throw new ArgumentException("put value can not is null"); } TarsOutputStream _out = new TarsOutputStream(); _out.setServerEncoding(_encodeName); _out.Write(t, 0); byte[] sBuffer = TarsUtil.getTarsBufArray(_out.getMemoryStream()); if (_iVer == Const.PACKET_TYPE_TUP3) { cachedData.Remove(name); if (_new_data.ContainsKey(name)) { _new_data[name] = sBuffer; } else { _new_data.Add(name, sBuffer); } } else { List <string> listType = new List <string>(); CheckObjectType(listType, t); string className = BasicClassTypeUtil.TransTypeList(listType); Dictionary <string, byte[]> pair = new Dictionary <string, byte[]>(1); pair.Add(className, sBuffer); cachedData.Remove(name); if (_data.ContainsKey(name)) { _data[name] = pair; } else { _data.Add(name, pair); } } }
/** * Put in an element. * @param <T> * @param name * @param value */ public void Put <T>(string name, T value) { if (name == null) { throw new ArgumentException("put key can not is null"); } if (value == null) { throw new ArgumentException("put value can not is null"); } TarsOutputStream _out = new TarsOutputStream(); _out.SetServerEncoding(_encodeName); _out.Write(value, 0); byte[] sBuffer = TarsUtil.GetTarsBufferArray(_out.GetMemoryStream()); if (_iVer == Const.TUP_VERSION_3) { cachedData.Remove(name); if (_new_data.ContainsKey(name)) { _new_data[name] = sBuffer; } else { _new_data.Add(name, sBuffer); } } else { List <string> listType = new List <string>(); CheckObjectType(listType, value); string className = BasicClassTypeUtil.TransTypeList(listType); Dictionary <string, byte[]> map = new Dictionary <string, byte[]>(1); map.Add(className, sBuffer); cachedData.Remove(name); if (_data.ContainsKey(name)) { _data[name] = map; } else { _data.Add(name, map); } } }