示例#1
0
        private static void WhilelistFacebookServersForNetworkRequests(PListDict plistDict)
        {
            if (!ContainsKeyWithValueType(plistDict, PListParser.NSAppTransportSecurityKey, typeof(PListDict)))
            {
                // We don't have a NSAppTransportSecurity entry. We can easily add one
                plistDict [PListParser.NSAppTransportSecurityKey] = PListParser.FacebookNSAppTransportSecurity;
                return;
            }

            var appTransportSecurityDict = (PListDict)plistDict [PListParser.NSAppTransportSecurityKey];

            if (!ContainsKeyWithValueType(appTransportSecurityDict, PListParser.NSExceptionDomainsKey, typeof(PListDict)))
            {
                appTransportSecurityDict [PListParser.NSExceptionDomainsKey] = PListParser.FacebookNSExceptionDomainsEntry;
                return;
            }

            var exceptionDomains = (PListDict)appTransportSecurityDict [PListParser.NSExceptionDomainsKey];

            foreach (var key in PListParser.FacebookNSExceptionDomainsEntry.Keys)
            {
                // Instead of just updating overwrite values to keep things up to date
                exceptionDomains [key] = FacebookNSExceptionDomainsEntry [key];
            }
        }
示例#2
0
        private object ParseValueForLoad(XElement val)
        {
            switch (val.Name.ToString())
            {
            case "string":
                return(val.Value);

            case "integer":
                return(int.Parse(val.Value));

            case "real":
                return(float.Parse(val.Value));

            case "true":
                return(true);

            case "false":
                return(false);

            case "dict":
                PListDict plist = new PListDict();
                this.ParseDictForLoad(plist, val.Elements());
                return(plist);

            case "array":
                return(this.ParseArrayForLoad(val.Elements()));

            default:
                throw new ArgumentException("Format unsupported, Parser update needed");
            }
        }
示例#3
0
 private void ParseDictForLoad(PListDict dict, IEnumerable <XElement> elements)
 {
     for (int i = 0; i < elements.Count(); i += 2)
     {
         XElement key = elements.ElementAt(i);
         XElement val = elements.ElementAt(i + 1);
         dict [key.Value] = this.ParseValueForLoad(val);
     }
 }
示例#4
0
        private XElement ParseDictForSave(PListDict dict)
        {
            XElement dictNode = new XElement("dict");

            foreach (string key in dict.Keys)
            {
                dictNode.Add(new XElement("key", key));
                dictNode.Add(this.ParseValueForSave(dict [key]));
            }

            return(dictNode);
        }
示例#5
0
 public PListDict(PListDict dict) : base(dict)
 {
 }