/// <summary> /// Safely reads value from config datatable and deserializes it /// </summary> /// <typeparam name="T"></typeparam> /// <param name="key"></param> /// <param name="default"></param> /// <returns></returns> public static T ReadSf <T>(string key, T @default) { try { ObjectSerializer serializer = new ObjectSerializer(true); var buffer = ClientDataAccess.SelectConfigValue(key); return(serializer.Deserialize <T>(buffer)); } catch { return(@default); } }