# OpcNodeManager Class

<span class="api-meta">abstract</span>

<dl class="api-definition">
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx.server">Opc.UaFx.Server</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
<dt>Members</dt>
<dd><a href="./members">OpcNodeManager Members</a></dd>
</dl>

Provides an abstract base class used to organize and maintain the address space or only a part of it. This includes the definition of the nodes in the address space as well as the processing of different node operations to interact with the underlying system.

## Syntax

<div class="api-signature" data-lang="csharp">

```csharp
public abstract class OpcNodeManager
```

</div>

<div class="api-signature" data-lang="vbnet">

```vbnet
Public MustInherit Class OpcNodeManager
```

</div>

## Inheritance

[Object](https://learn.microsoft.com/dotnet/api/system.object) → **OpcNodeManager**

## Implements

<ul class="api-implements">
<li><a href="https://learn.microsoft.com/dotnet/api/system.idisposable">IDisposable</a></li>
<li><a href="../opc.uafx.iopcnamespaceresolver/">IOpcNamespaceResolver</a></li>
</ul>

## Derived types

- [OpcNodeSetManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodesetmanager/)

## Constructors

| Name | Description |
|---|---|
| [OpcNodeManager](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#opcnodemanager)<span class="api-meta">protected · 3 overloads</span> | Initializes a new instance of the OpcNodeManager class using the `defaultNamespace` and additionally specified `namespaces`. |

## Properties

| Name | Description |
|---|---|
| [DefaultNamespace](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#defaultnamespace) | Gets the default namespace of the node manager. |
| [DefaultNamespaceIndex](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#defaultnamespaceindex) | Gets the index of the default namespace of the node manager. |
| [DefaultNamespaceUri](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#defaultnamespaceuri) | Gets the URI of the default namespace of the node manager. |
| [DefaultNamespaceValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#defaultnamespacevalue)<span class="api-meta">since v2.8</span> | Gets the textual value of the default namespace of the node manager. |
| [Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#namespaces)<span class="api-meta">since v2.8</span> | Gets the namespaces maintained by the node manager. |
| [NodeIdFactory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#nodeidfactory)<span class="api-meta">protected · virtual</span> | Gets or sets the [OpcNodeIdFactory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidfactory/) instance used by this node manager to determine / create node identifiers for the nodes provided / defined by the node manager. |
| [Nodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#nodes) | Gets the nodes of the node manager. |
| [NodeSetImportOptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#nodesetimportoptions)<span class="api-meta">protected · virtual · since v2.50</span> | Gets or sets the options to use to import the node sets provided by [ImportNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#importnodes). |
| [NotifierNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#notifiernodes) | Gets the nodes of the node manager which act as notifiers (event sources) of the 'Server' node. |
| [SyncRoot](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#syncroot)<span class="api-meta">protected</span> | Gets the object the node manager locks while it notifies monitored items about changes of its nodes and while it creates, modifies or deletes monitored items, browses, translates browse paths or accesses the history of its nodes. |
| [SystemContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#systemcontext)<span class="api-meta">protected</span> | Gets the context which the node manager uses to access its nodes. |
| [UseAsyncMethodCalls](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#useasyncmethodcalls)<span class="api-meta">protected · virtual · since v2.24</span> | Gets a value indicating whether every call to a [OpcMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmethodnode/) defined by the current OpcNodeManager is to be processed asynchronously using one worker thread per method call. |

## Methods

| Name | Description |
|---|---|
| [AddNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#addnode)<span class="api-meta">8 overloads</span> | Adds the `node` specified to the address space of the node manager. |
| [AddNotifierNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#addnotifiernode)<span class="api-meta">protected</span> | Adds the `node` to the collection of 'root' notifiers (= event sources) of the 'Server' node. |
| [Browse](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#browse)<span class="api-meta">protected · virtual · since v2.7</span> | Browses the references of a node of the node manager on behalf of a client. |
| [CreateHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#createhistory)<span class="api-meta">protected · virtual</span> | Creates the history entries of the `values` specified for the `node` specified. |
| [CreateNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#createnodes)<span class="api-meta">protected · virtual</span> | When overridden in a derived class, creates the nodes of the address space part maintained by the node manager. |
| [DeleteHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#deletehistory)<span class="api-meta">protected · virtual · 3 overloads</span> | Deletes the history entries at the `times` specified of the `node` specified. |
| [DeleteNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#deletenodes)<span class="api-meta">protected · virtual</span> | When overridden in a derived class, releases the nodes of the node manager. |
| [Dispose](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#dispose)<span class="api-meta">2 overloads</span> | Releases all resources used by the OpcNodeManager. |
| [ExportNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#exportnodes)<span class="api-meta">2 overloads</span> | Exports the [Nodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#nodes) of the node manager using the [Default](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeexportoptions/members#default) options. |
| [GetNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#getnode)<span class="api-meta">2 overloads · since v2.15</span> | Retrieves the [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) which is maintained by the [Nodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#nodes) of this OpcNodeManager and is known under the `nodePath` specified. |
| [ImplementNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#implementnode)<span class="api-meta">protected · virtual · since v2.9</span> | When implemented in a derived class, implements the logic required to integrate the `node` into the underlying system. |
| [ImportNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#importnodes)<span class="api-meta">protected · virtual · since v2.9</span> | When implemented in a derived class, offers the different [OpcNodeSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/)s which are imported prior any other nodes are created within the address space part organized by the current OpcNodeManager. |
| [IsNodeAccessible](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#isnodeaccessible)<span class="api-meta">protected · virtual · since v2.7</span> | Determines whether the `node` specified is accessible in the `context` and view specified. |
| [IsNodeReadyToPublish](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#isnodereadytopublish)<span class="api-meta">protected · since v2.50</span> | Determines a value indicating whether any applied node changes are awaiting to be published by at least one monitored item. |
| [OnAfterRead](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onafterread)<span class="api-meta">protected · virtual</span> | Raises the [AfterRead](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#afterread) event of the OpcNodeManager. |
| [OnAfterWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onafterwrite)<span class="api-meta">protected · virtual</span> | Raises the [AfterWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#afterwrite) event of the OpcNodeManager. |
| [OnBeforeRead](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onbeforeread)<span class="api-meta">protected · virtual</span> | Raises the [BeforeRead](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#beforeread) event of the OpcNodeManager. |
| [OnBeforeWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onbeforewrite)<span class="api-meta">protected · virtual</span> | Raises the [BeforeWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#beforewrite) event of the OpcNodeManager. |
| [OnMonitoredItemCreated](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onmonitoreditemcreated)<span class="api-meta">protected · virtual</span> | Raises the [MonitoredItemCreated](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemcreated) event of the OpcNodeManager. |
| [OnMonitoredItemDeleted](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onmonitoreditemdeleted)<span class="api-meta">protected · virtual</span> | Raises the [MonitoredItemDeleted](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemdeleted) event of the OpcNodeManager. |
| [OnMonitoredItemModified](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onmonitoreditemmodified)<span class="api-meta">protected · virtual</span> | Raises the [MonitoredItemModified](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemmodified) event of the OpcNodeManager. |
| [OnMonitoredItemsCreated](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onmonitoreditemscreated)<span class="api-meta">protected · virtual · since v2.7</span> | Raises the [MonitoredItemsCreated](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemscreated) event of the OpcNodeManager. |
| [OnMonitoredItemsDeleted](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onmonitoreditemsdeleted)<span class="api-meta">protected · virtual · since v2.7</span> | Raises the [MonitoredItemsDeleted](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemsdeleted) event of the OpcNodeManager. |
| [OnMonitoredItemsModified](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#onmonitoreditemsmodified)<span class="api-meta">protected · virtual · since v2.7</span> | Raises the [MonitoredItemsModified](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemsmodified) event of the OpcNodeManager. |
| [QueryNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#querynode)<span class="api-meta">protected · virtual</span> | When overridden in a derived class, provides the node with the `nodeId` specified which is not part of the [Nodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#nodes). |
| [Read](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#read)<span class="api-meta">protected · virtual</span> | Reads the attribute values requested by the `tokens` specified on behalf of a client. |
| [ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#readeventhistory)<span class="api-meta">protected · virtual · since v2.54</span> | Reads the history of the events of the `node` specified on behalf of a client. |
| [ReadHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#readhistory)<span class="api-meta">protected · virtual · since v2.51</span> | Reads the history of the values of the `node` specified on behalf of a client. |
| [RemoveNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#removenode)<span class="api-meta">4 overloads</span> | Removes the `node` specified from the address space of the node manager. |
| [RemoveNotifierNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#removenotifiernode)<span class="api-meta">protected</span> | Removes the `node` from the collection of 'root' notifiers (= event sources) of the 'Server' node. |
| [ReplaceHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#replacehistory)<span class="api-meta">protected · virtual</span> | Replaces the history entries of the `values` specified of the `node` specified. |
| [ReplaceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#replacenode)<span class="api-meta">protected · since v2.9</span> | Replaces an existing [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) instance with the specified `node` without invalidating existing monitored items nor previously defined notifiers. |
| [ReportEvent](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#reportevent)<span class="api-meta">7 overloads</span> | Produces a global event using the `eventNode` specified. |
| [RetrieveEventHistoryProvider](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#retrieveeventhistoryprovider)<span class="api-meta">protected · virtual · since v2.54</span> | Retrieves the provider which provides the history of the events of the `node` specified. |
| [RetrieveNodeHistoryProvider](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#retrievenodehistoryprovider)<span class="api-meta">protected · virtual</span> | Retrieves the provider which provides the history of the values of the `node` specified. |
| [UpdateHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#updatehistory)<span class="api-meta">protected · virtual</span> | Updates the history entries of the `values` specified of the `node` specified. |
| [Write](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#write)<span class="api-meta">protected · virtual</span> | Writes the attribute values provided by the `tokens` specified on behalf of a client. |

## Events

| Name | Description |
|---|---|
| [AfterRead](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#afterread) | Occurs after the node manager has read attribute values of its nodes on behalf of a client (see [Read](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#read)), also if reading has failed. |
| [AfterWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#afterwrite) | Occurs after the node manager has written attribute values of its nodes on behalf of a client (see [Write](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#write)), also if writing has failed. |
| [BeforeRead](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#beforeread) | Occurs before the node manager reads attribute values of its nodes on behalf of a client (see [Read](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#read)). |
| [BeforeWrite](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#beforewrite) | Occurs before the node manager writes attribute values of its nodes on behalf of a client (see [Write](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#write)). |
| [MonitoredItemCreated](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemcreated) | Occurs when a new monitored item is created through a [OpcSession](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcsession/). |
| [MonitoredItemDeleted](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemdeleted) | Occurs when an existing monitored item of a [OpcSession](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcsession/) has been deleted. |
| [MonitoredItemModified](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemmodified) | Occurs when an existing monitored item of a [OpcSession](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcsession/) has been modified. |
| [MonitoredItemsCreated](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemscreated)<span class="api-meta">since v2.7</span> | Occurs when a set of new monitored items is created through a [OpcSession](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcsession/). |
| [MonitoredItemsDeleted](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemsdeleted)<span class="api-meta">since v2.7</span> | Occurs when a set of existing monitored items of a [OpcSession](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcsession/) has been deleted. |
| [MonitoredItemsModified](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#monitoreditemsmodified)<span class="api-meta">since v2.7</span> | Occurs when a set of existing monitored items of a [OpcSession](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcsession/) has been modified. |

## Applies to

| Package | Versions |
|---|---|
| Opc.UaFx.Advanced | v2.5–v2.59 |
