/// <summary> /// Read the object from parameter /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sid"></param> /// <param name="parameterName"></param> /// <returns></returns> public static T ReadObject <T>(string sid, string parameterName) { try { TransParameterAccessor tpa = DataAccessor.CreateInstance <TransParameterAccessor>(); string base64Encoded = tpa.GetParameterBySidAndName(sid, parameterName); base64Encoded = Unmask(sid, parameterName, base64Encoded); if (typeof(T) != typeof(int) && typeof(T) != typeof(long) && typeof(T) != typeof(decimal) && typeof(T) != typeof(float) && typeof(T) != typeof(double) && typeof(T) != typeof(bool) && typeof(T) != typeof(string)) { int length = Convert.ToInt32(base64Encoded.Substring(0, 4), 16); base64Encoded = base64Encoded.Substring(4); using (MemoryStream input = new MemoryStream(Convert.FromBase64String(base64Encoded))) { using (GZipStream zipStream = new GZipStream(input, CompressionMode.Decompress)) { byte[] uncompressed = new byte[length]; int read = zipStream.Read(uncompressed, 0, uncompressed.Length); if (read == uncompressed.Length) { BinaryFormatter bf = new BinaryFormatter(); using (MemoryStream ms = new MemoryStream(uncompressed)) { return((T)bf.Deserialize(ms)); } } } } } return((T)Convert.ChangeType(base64Encoded, typeof(T))); } catch { return(default(T)); } }
/// <summary> /// Save the object with parameter /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sid"></param> /// <param name="parameterName"></param> /// <param name="obj"></param> public static void SaveObject <T>(string sid, string parameterName, T obj) { obj = Mask <T>(sid, parameterName, obj); string base64Encoded = null; if (typeof(T) == typeof(int) || typeof(T) == typeof(long) || typeof(T) == typeof(decimal) || typeof(T) == typeof(float) || typeof(T) == typeof(double) || typeof(T) == typeof(bool)) { base64Encoded = obj.ToString(); } else if (typeof(T) != typeof(string)) { using (MemoryStream ms = new MemoryStream()) { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms, obj); using (MemoryStream dest = new MemoryStream()) { byte[] buffer = ms.ToArray(); using (GZipStream zipStream = new GZipStream(dest, CompressionMode.Compress)) { zipStream.Write(buffer, 0, buffer.Length); zipStream.Close(); } base64Encoded = string.Format("{0:X4}{1}", buffer.Length, Convert.ToBase64String(dest.ToArray())); } } } else { base64Encoded = obj as string; } TransParameterAccessor tpa = DataAccessor.CreateInstance <TransParameterAccessor>(); tpa.SetParameter(sid, parameterName, base64Encoded); }
public static void DeleteSecurityKey(string sid) { TransParameterAccessor tpa = DataAccessor.CreateInstance <TransParameterAccessor>(); tpa.DeleteSecurityKey(sid); }