/// <summary> /// 轉換Class到HashEntry /// </summary> /// <param name="obj">Object</param> /// <returns></returns> public IEnumerable <HashEntry> Serialize(object obj) { PropertyInfo[] properties = obj.GetType().GetProperties(); foreach (var property in properties) { var objVal = property.GetValue(obj); if (objVal == null) { continue; } string redisValue = string.Empty; if (CustomSerializeFunc.ContainsKey(property.PropertyType)) { redisValue = CustomSerializeFunc[property.PropertyType](objVal); } else { redisValue = DefaultSerialize(objVal); } string name = GetPropertyNameFunc(property); yield return(new HashEntry(name, redisValue)); } }
public void RegisterCustomSerializeFunc(Type type, CustomSerializeFunc serialize) { if (null != serialize && !serializeDic.ContainsKey(type)) { serializeDic.Add(type, serialize); } }
public void RegisterCustomSerializeFunc(Type type, CustomSerializeFunc serialize = null, CustomDeserializeFunc deserialize = null) { if (null != serialize && !serializeDic.ContainsKey(type)) { serializeDic.Add(type, serialize); } if (null != deserialize && !deserializeDic.ContainsKey(type)) { deserializeDic.Add(type, deserialize); } }
public bool TryGetSerializaFunc(Type type, out CustomSerializeFunc serializeFunc) { return(serializeDic.TryGetValue(type, out serializeFunc)); }