public ExpandedNodeId ReadExpandedNodeId(string fieldName)
{
byte encodingByte = m_reader.ReadByte();
ExpandedNodeId value = new ExpandedNodeId();
NodeId body = new NodeId();
ReadNodeIdBody(encodingByte, body);
value.InnerNodeId = body;
string namespaceUri = null;
uint serverIndex = 0;
// read the namespace uri if present.
if ((encodingByte & 0x80) != 0)
{
namespaceUri = ReadString(null);
value.SetNamespaceUri(namespaceUri);
}
// read the server index if present.
if ((encodingByte & 0x40) != 0)
{
serverIndex = ReadUInt32(null);
value.SetServerIndex(serverIndex);
}
if (m_namespaceMappings != null && m_namespaceMappings.Length > value.NamespaceIndex)
{
value.SetNamespaceIndex(m_namespaceMappings[value.NamespaceIndex]);
}
if (m_serverMappings != null && m_serverMappings.Length > value.ServerIndex)
{
value.SetServerIndex(m_serverMappings[value.NamespaceIndex]);
}
return value;
}