public static void Delete <TEntity, TProperty>(TEntity entity, Expression <Func <TEntity, TProperty> > expr)
        {
            string fieldKey = GetFieldKey(entity, expr);

            PlayerPrefsProvider.DeleteKey(fieldKey);
            PlayerPrefsProvider.Save();
        }
 public static void Delete <TEntity>(string entityId)
 {
     foreach (string entityKey in GetEntityKeys(typeof(TEntity), entityId))
     {
         PlayerPrefsProvider.DeleteKey(entityKey);
     }
     PlayerPrefsProvider.Save();
 }
 public static void Delete(object entity)
 {
     foreach (string entityKey in GetEntityKeys(entity))
     {
         PlayerPrefsProvider.DeleteKey(entityKey);
     }
     PlayerPrefsProvider.Save();
 }
        public static void Save(object entity)
        {
            string entityId   = GetEntityId(entity);
            Type   entityType = entity.GetType();
            List <DataMemberInfo> dataMemberInfos = PlayerPrefsCache.GetDataMemberInfoWithFieldAttribute(entityType);

            foreach (DataMemberInfo dataMemberInfo in dataMemberInfos)
            {
                string fieldKey  = GetFieldKey(entityId, entityType, dataMemberInfo);
                Type   fieldType = dataMemberInfo.GetMemberInfoType();
                PlayerPrefsFieldHandler fieldHandler = PlayerPrefsFieldFactory.Get(fieldType);
                fieldHandler.SetValue(fieldKey, dataMemberInfo, entity);
            }
            PlayerPrefsProvider.Save();
        }