/// <summary cref="IEncodeable.Encode(IEncoder)" />
        public virtual void Encode(IEncoder encoder)
        {
            encoder.PushNamespace(Opc.Ua.Fdi5.Namespaces.OpcUaFdi5Xsd);

            encoder.WriteInt32("Status", Status);
            encoder.WriteEncodeableArray("RegisteredNodes", RegisteredNodes.ToArray(), typeof(RegisteredNode));

            encoder.PopNamespace();
        }
        public WrappedNode RegisterNode(ushort id)
        {
            if (id == 0)
            {
                return(null);
            }

            WrappedNode node;

            if (!RegisteredNodes.TryGetValue(id, out node))
            {
                node = new WrappedNode(id);
                RegisteredNodes[id] = node;
            }

            return(node);
        }