internal sealed override object ReadValue(EmberReader reader, out ParameterType?parameterType) { switch (reader.InnerNumber) { case InnerNumber.Boolean: parameterType = ParameterType.Boolean; return(reader.ReadContentsAsBoolean()); case InnerNumber.Integer: parameterType = ParameterType.Integer; return(reader.ReadContentsAsInt64()); case InnerNumber.Octetstring: parameterType = ParameterType.Octets; return(reader.ReadContentsAsByteArray()); case InnerNumber.Real: parameterType = ParameterType.Real; return(reader.ReadContentsAsDouble()); default: parameterType = ParameterType.String; return(reader.AssertAndReadContentsAsString()); } }