System.ZXParser.ParseSimpleData C# (CSharp) Method

ParseSimpleData() private static method

private static ParseSimpleData ( object o, ZXPProxy zpp, string s, List ld, int &li ) : void
o object
zpp ZXPProxy
s string
ld List
li int
return void
        private static void ParseSimpleData(object o, ZXPProxy zpp, string s, List<DIndices> ld, ref int li)
        {
            // Check If A Key Is Available
            string key = GetKeyString(s, ld, li);
            if(string.IsNullOrWhiteSpace(key))
                return;

            // Find The Field That Matches To This Key
            ZXPDatum datum = null;
            if(zpp.DataDict.TryGetValue(key, out datum)) {
                object val = null;

                // Check For Array
                if(datum.Type.IsArray) {
                    if(!datum.Type.HasElementType) return;
                    Type eType = datum.Type.GetElementType();
                    if(ParseArray(eType, s.Substring(ld[li].Start, ld[li].Length), out val))
                        datum.SetValue(o, val);
                }

                // Check For A Possible Conversion
                if(datum.Converter == null) return;

                // Try To Convert
                string sValue = s.Substring(ld[li].Start, ld[li].Length);
                if(ReadValue(sValue, datum.Converter, out val))
                    datum.SetValue(o, val);
            }
        }