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);
}
}
}