Opc.Ua.JsonEncoder.WriteExtensionObject C# (CSharp) Method

WriteExtensionObject() public method

Writes an ExtensionObject to the stream.
public WriteExtensionObject ( string fieldName, Opc.Ua.ExtensionObject value ) : void
fieldName string
value Opc.Ua.ExtensionObject
return void
        public void WriteExtensionObject(string fieldName, ExtensionObject value)
        {
            if (value == null || value.Encoding == ExtensionObjectEncoding.None)
            {
                WriteSimpleField(fieldName, null, false);
                return;
            }

            PushStructure(fieldName);
            
            if (value != null)
            {
                IEncodeable encodeable = value.Body as IEncodeable;

                if (encodeable != null)
                {
                    if (UseReversibleEncoding)
                    {
                        WriteExpandedNodeId("TypeId", encodeable.TypeId);
                        WriteEncodeable("Object", encodeable, null);
                    }
                    else
                    {
                        encodeable.Encode(this);
                    }
                }
                else
                {
                    WriteExpandedNodeId("TypeId", value.TypeId);
                    
                    if (value.Body != null)
                    {
                        if (value.Encoding == ExtensionObjectEncoding.Binary)
                        {
                            WriteByteString("Binary", value.Body as byte[]);
                        }
                        else if (value.Encoding == ExtensionObjectEncoding.Xml)
                        {
                            WriteXmlElement("Xml", value.Body as XmlElement);
                        }
                    }
                }
            }

            PopStructure();
        }