/// <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;
}