public DataValue ReadDataValue(string fieldName)
{
object token = null;
if (!ReadField(fieldName, out token))
{
return null;
}
var value = token as Dictionary<string, object>;
if (value == null)
{
return null;
}
DataValue dv = new DataValue();
try
{
m_stack.Push(value);
dv.WrappedValue = ReadVariant("Value");
dv.StatusCode = ReadStatusCode("StatusCode");
dv.SourceTimestamp = ReadDateTime("SourceTimestamp");
dv.SourcePicoseconds = ReadUInt16("SourcePicoseconds");
dv.ServerTimestamp = ReadDateTime("ServerTimestamp");
dv.ServerPicoseconds = ReadUInt16("ServerPicoseconds");
}
finally
{
m_stack.Pop();
}
return dv;
}