Opc.Ua.Server.BaseInstanceSource.Create C# (CSharp) Method

Create() public method

Updates the object based from a configuration.
public Create ( NodeId parentId, NodeId referenceTypeId, NodeId nodeId, QualifiedName browseName, uint numericId, object configuration ) : void
parentId NodeId
referenceTypeId NodeId
nodeId NodeId
browseName QualifiedName
numericId uint
configuration object
return void
        public override void Create(
            NodeId          parentId,
            NodeId          referenceTypeId, 
            NodeId          nodeId,
            QualifiedName   browseName, 
            uint            numericId,
            object          configuration)
        {          
            CheckNodeManagerState();

            lock (DataLock)
            {
                // update the reference type.
                if (NodeId.IsNull(referenceTypeId))
                {
                    referenceTypeId = m_referenceTypeId;
                }
                else
                {                        
                    m_referenceTypeId = referenceTypeId;
                }

                // create the node.
                base.Create(parentId, referenceTypeId, nodeId, browseName, numericId, configuration);
            }
        }

Usage Example

        /// <summary>
        /// Replaces a shared child in the address space.
        /// </summary>
        protected virtual BaseInstanceSource ReplaceSharedChild(
            BaseInstanceSource child, 
            NodeId             nodeId,
            NodeId             referenceTypeId,
            QualifiedName      browseName,
            uint               numericId,
            NodeId             typeDefinitionId,
            object             configuration)
        {  
            CheckNodeManagerState();

            // remove links to shared node.
            NodeManager.UnreferenceSharedNode(this, referenceTypeId, false, browseName);

            // initialize replacement.
            child.Initialize(nodeId, referenceTypeId, browseName, numericId, typeDefinitionId);

            // add replacement to the address space.
            child.Create(this.NodeId, child.ReferenceTypeId, null, null, child.NumericId, configuration);
            
            // return replacement.
            return child;
        }