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]; } }
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"); } }
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); } }
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); }
public PListDict(PListDict dict) : base(dict) { }