Exemplo n.º 1
0
 public FIClientDataProvider(FIBuildOptions _buildOptions, FIRBaseDataTypeContainer _typeContainer)
 {
     buildOption       = _buildOptions;
     dataTypeContainer = _typeContainer;
     baseData          = new FIRData();
     if (System.IO.File.Exists(FilePath) == true)
     {
         string jsonStr  = System.IO.File.ReadAllText(FilePath);
         var    jsonData = JsonConvert.DeserializeObject <JObject>(jsonStr);
         baseData.DeserializeFromJson(dataTypeContainer, jsonData);
         Debug.Log("[ClientDataProvider] Loaded");
     }
     else
     {
         Debug.Log("[ClientDataProvider] New");
     }
 }
Exemplo n.º 2
0
    public void DeserializeFromJson(FIRBaseDataTypeContainer dataTypeContainer, JObject json)
    {
        this.objectDic.Clear();
        this.typeCounter.Clear();
        foreach (var classProp in json.Properties())
        {
            var         className = (classProp.Value as JObject)["name"].Value <string>();
            var         cnt       = (classProp.Value as JObject)["cnt"].Value <int>();
            var         instArr   = (classProp.Value as JObject)["instArr"].Value <JArray>();
            System.Type typeObj   = dataTypeContainer.TypeDic[className];

            this.typeCounter.Add(typeObj, cnt);

            var dic = new Dictionary <int, FIRBaseData>();
            foreach (JObject inst in instArr)
            {
                var created = (FIRBaseData)inst.ToObject(typeObj);
                dic.Add(created.uid, created);
            }
            this.objectDic.Add(typeObj, dic);
        }
    }