protected override ServiceResult ReadNonValueAttribute(
ISystemContext context,
uint attributeId,
ref object value)
{
ServiceResult result = null;
switch (attributeId)
{
case Attributes.DataType:
{
NodeId dataType = m_dataType;
if (OnReadDataType != null)
{
result = OnReadDataType(context, this, ref dataType);
}
if (ServiceResult.IsGood(result))
{
value = dataType;
}
return result;
}
case Attributes.ValueRank:
{
int valueRank = m_valueRank;
if (OnReadValueRank != null)
{
result = OnReadValueRank(context, this, ref valueRank);
}
if (ServiceResult.IsGood(result))
{
value = valueRank;
}
return result;
}
case Attributes.ArrayDimensions:
{
IList<uint> arrayDimensions = m_arrayDimensions;
if (OnReadArrayDimensions != null)
{
result = OnReadArrayDimensions(context, this, ref arrayDimensions);
}
if (ServiceResult.IsGood(result))
{
value = arrayDimensions;
}
return result;
}
}
return base.ReadNonValueAttribute(context, attributeId, ref value);
}