示例#1
0
    private IEnumerator DownloadLoginMarket()
    {
        Debug.Log("DownloadLoginMarket");
        LoginMarketData.dataMap.Clear();

        WWW d = new WWW(SystemConfig.GetCfgInfoUrl(SystemConfig.LOGIN_MARKET_URL_KEY));

        yield return(d);

        Debug.Log("DownloadLoginMarket d: " + d.text.Length);

        var xml   = XMLParser.LoadXML(d.text);
        var map   = XMLParser.LoadIntMap(xml, SystemConfig.LOGIN_MARKET_URL_KEY);
        var type  = typeof(LoginMarketData);
        var props = type.GetProperties();

        foreach (var item in map)
        {
            var t = new LoginMarketData();
            foreach (var prop in props)
            {
                if (prop.Name == "id")
                {
                    prop.SetValue(t, item.Key, null);
                }
                else
                {
                    if (item.Value.ContainsKey(prop.Name))
                    {
                        var value = Utils.GetValue(item.Value[prop.Name], prop.PropertyType);
                        prop.SetValue(t, value, null);
                    }
                }
            }
            if (!LoginMarketData.dataMap.ContainsKey(item.Key))
            {
                Debug.Log("LoginMarketData new " + item.Key + " version" + t.version);
                LoginMarketData.dataMap.Add(item.Key, t);
            }
        }

        EventDispatcher.TriggerEvent(Events.OperationEvent.GetLoginMessage);
    }
示例#2
0
    private IEnumerator DownloadLoginMarket()
    {
        LoggerHelper.Debug("DownloadLoginMarket");
        LoginMarketData.dataMap.Clear();

        WWW d = new WWW(SystemConfig.GetCfgInfoUrl(SystemConfig.LOGIN_MARKET_URL_KEY));
        yield return d;

        LoggerHelper.Debug("DownloadLoginMarket d: " + d.text.Length);

        var xml = XMLParser.LoadXML(d.text);
        var map = XMLParser.LoadIntMap(xml, SystemConfig.LOGIN_MARKET_URL_KEY);
        var type = typeof(LoginMarketData);
        var props = type.GetProperties();
        foreach (var item in map)
        {
            var t = new LoginMarketData();
            foreach (var prop in props)
            {
                if (prop.Name == "id")
                {
                    prop.SetValue(t, item.Key, null);
                }
                else
                {
                    if (item.Value.ContainsKey(prop.Name))
                    {
                        var value = Utils.GetValue(item.Value[prop.Name], prop.PropertyType);
                        prop.SetValue(t, value, null);
                    }
                }
            }
            if (!LoginMarketData.dataMap.ContainsKey(item.Key))
            {
                LoggerHelper.Debug("LoginMarketData new " + item.Key + " version" + t.version);
                LoginMarketData.dataMap.Add(item.Key, t);
            }
        }

        EventDispatcher.TriggerEvent(Events.OperationEvent.GetLoginMessage);
    }