public string Decrypt <T>(string json) where T : new() { var jObject = JObject.Parse(json); var prop = GetPropertiesToEncrypt(typeof(T)); foreach (var p in prop) { if (p.CanRead && p.CanWrite) { var bytes = Convert.FromBase64String((string)jObject[p.Name]); bytes = _encrypting.Unprotect(bytes); if (bytes == null) { return(null); } dynamic variable = _byteSerializer.Deserialize(bytes, p.PropertyType); jObject[p.Name] = variable; } } return(jObject.ToString()); }