# OpcNodeIdArrayVariableNode Members

> Reference: Defines a variable node for node identifier array variables.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcNodeIdArrayVariableNode</a></dd>
<dt>Namespace</dt>
<dd><a href="../namespaces/opc.uafx">Opc.UaFx</a></dd>
<dt>Assembly</dt>
<dd>Opc.UaFx.Advanced.dll</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced v2.59.0</dd>
</dl>

Inherits members from [OpcDataVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatavariablenode/members), [OpcVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/members), [OpcInstanceNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members), [OpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members).

## Constructors

### OpcNodeIdArrayVariableNode

<span class="api-meta">10 overloads</span>

| Overload | Description |
|---|---|
| [OpcNodeIdArrayVariableNode(OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/members#opcnodeidarrayvariablenode-opc-uafx-opcname) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified. |
| [OpcNodeIdArrayVariableNode(OpcName, params OpcNodeId\[\])](#opcnodeidarrayvariablenode-opc-uafx-opcname-opc-uafx-opcnodeid-array) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified with the initial value given by `value`. |
| [OpcNodeIdArrayVariableNode(OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/members#opcnodeidarrayvariablenode-opc-uafx-opcname-opc-uafx-opcnodeid) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified. |
| [OpcNodeIdArrayVariableNode(OpcName, OpcNodeId, params OpcNodeId\[\])](#opcnodeidarrayvariablenode-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid-array) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified with the initial value given by `value`. |
| [OpcNodeIdArrayVariableNode(IOpcNode, OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/members#opcnodeidarrayvariablenode-opc-uafx-iopcnode-opc-uafx-opcname) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified as a child node of the `parent` node given. |
| [OpcNodeIdArrayVariableNode(IOpcNode, OpcName, params OpcNodeId\[\])](#opcnodeidarrayvariablenode-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid-array) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified with the initial value defined by `value` as a child node of the `parent` node given. |
| [OpcNodeIdArrayVariableNode(IOpcNode, OpcName, OpcNodeId)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/members#opcnodeidarrayvariablenode-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given. |
| [OpcNodeIdArrayVariableNode(IOpcNode, OpcName, OpcNodeId, params OpcNodeId\[\])](#opcnodeidarrayvariablenode-opc-uafx-iopcnode-opc-uafx-opcname-opc-uafx-opcnodeid-opc-uafx-opcnodeid-array) | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified with the initial value defined by `value` as a child node of the `parent` node given. |
| [OpcNodeIdArrayVariableNode(BaseDataVariableState&lt;NodeId\[\]&gt;)](#opcnodeidarrayvariablenode-opc-ua-basedatavariablestate-of-opc-ua-nodeid-array)<span class="api-meta">protected</span> | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class using the `content` as the instance to wrap. |
| [OpcNodeIdArrayVariableNode(BaseDataVariableState&lt;NodeId\[\]&gt;, OpcNodeModel)](#opcnodeidarrayvariablenode-opc-ua-basedatavariablestate-of-opc-ua-nodeid-array-opc-uafx-opcnodemodel)<span class="api-meta">protected</span> | Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class using the `content` as the instance to wrap. |

#### OpcNodeIdArrayVariableNode(OpcName)

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified.

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

```csharp
public OpcNodeIdArrayVariableNode(OpcName name)
```

</div>

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

```vbnet
Public Sub New(name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |

#### OpcNodeIdArrayVariableNode(OpcName, params OpcNodeId\[\])

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified with the initial value given by `value`.

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

```csharp
public OpcNodeIdArrayVariableNode(OpcName name, params OpcNodeId[] value)
```

</div>

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

```vbnet
Public Sub New(name As OpcName, ParamArray value As OpcNodeId())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |
| `value` | params [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[] | The initial value of the new node identifier array variable node. |

#### OpcNodeIdArrayVariableNode(OpcName, OpcNodeId)

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified.

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

```csharp
public OpcNodeIdArrayVariableNode(OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Public Sub New(name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new node identifier array variable node can be identified and accessed. |

#### OpcNodeIdArrayVariableNode(OpcName, OpcNodeId, params OpcNodeId\[\])

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified with the initial value given by `value`.

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

```csharp
public OpcNodeIdArrayVariableNode(
    OpcName name,
    OpcNodeId id,
    params OpcNodeId[] value)
```

</div>

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

```vbnet
Public Sub New(
    name As OpcName,
    id As OpcNodeId,
    ParamArray value As OpcNodeId())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new node identifier array variable node can be identified and accessed. |
| `value` | params [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[] | The initial value of the new node identifier array variable node. |

#### OpcNodeIdArrayVariableNode(IOpcNode, OpcName)

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified as a child node of the `parent` node given.

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

```csharp
public OpcNodeIdArrayVariableNode(IOpcNode parent, OpcName name)
```

</div>

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

```vbnet
Public Sub New(parent As IOpcNode, name As OpcName)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |

#### OpcNodeIdArrayVariableNode(IOpcNode, OpcName, params OpcNodeId\[\])

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` specified with the initial value defined by `value` as a child node of the `parent` node given.

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

```csharp
public OpcNodeIdArrayVariableNode(
    IOpcNode parent,
    OpcName name,
    params OpcNodeId[] value)
```

</div>

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

```vbnet
Public Sub New(
    parent As IOpcNode,
    name As OpcName,
    ParamArray value As OpcNodeId())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |
| `value` | params [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[] | The initial value of the new node identifier array variable node. |

#### OpcNodeIdArrayVariableNode(IOpcNode, OpcName, OpcNodeId)

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified as a child node of the `parent` node given.

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

```csharp
public OpcNodeIdArrayVariableNode(IOpcNode parent, OpcName name, OpcNodeId id)
```

</div>

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

```vbnet
Public Sub New(parent As IOpcNode, name As OpcName, id As OpcNodeId)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new node identifier array variable node can be identified and accessed. |

#### OpcNodeIdArrayVariableNode(IOpcNode, OpcName, OpcNodeId, params OpcNodeId\[\])

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class accessible by the `name` and `id` specified with the initial value defined by `value` as a child node of the `parent` node given.

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

```csharp
public OpcNodeIdArrayVariableNode(
    IOpcNode parent,
    OpcName name,
    OpcNodeId id,
    params OpcNodeId[] value)
```

</div>

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

```vbnet
Public Sub New(
    parent As IOpcNode,
    name As OpcName,
    id As OpcNodeId,
    ParamArray value As OpcNodeId())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `parent` | [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) | The [IOpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnode/) used as the parent node or a null reference (Nothing in Visual Basic) in the case there is no parent node available. |
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) through that the new node identifier array variable node can be accessed. |
| `id` | [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) through that the new node identifier array variable node can be identified and accessed. |
| `value` | params [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[] | The initial value of the new node identifier array variable node. |

#### OpcNodeIdArrayVariableNode(BaseDataVariableState&lt;NodeId\[\]&gt;)

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

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class using the `content` as the instance to wrap.

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

```csharp
protected OpcNodeIdArrayVariableNode(BaseDataVariableState<NodeId[]> content)
```

</div>

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

```vbnet
Protected Sub New(content As BaseDataVariableState(Of NodeId()))
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `content` | <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseDataVariableState">BaseDataVariableState</abbr>&lt;<abbr title="OPC Foundation stack type, not documented here: Opc.Ua.NodeId">NodeId</abbr>[]&gt; | The <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseDataVariableState">BaseDataVariableState&lt;T&gt;</abbr> to wrap. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `content` is a null reference (Nothing in Visual Basic). |

#### OpcNodeIdArrayVariableNode(BaseDataVariableState&lt;NodeId\[\]&gt;, OpcNodeModel)

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

Initializes a new instance of the [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/) class using the `content` as the instance to wrap.

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

```csharp
protected OpcNodeIdArrayVariableNode(
    BaseDataVariableState<NodeId[]> content,
    OpcNodeModel model)
```

</div>

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

```vbnet
Protected Sub New(
    content As BaseDataVariableState(Of NodeId()),
    model As OpcNodeModel)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `content` | <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseDataVariableState">BaseDataVariableState</abbr>&lt;<abbr title="OPC Foundation stack type, not documented here: Opc.Ua.NodeId">NodeId</abbr>[]&gt; | The <abbr title="OPC Foundation stack type, not documented here: Opc.Ua.BaseDataVariableState">BaseDataVariableState&lt;T&gt;</abbr> to wrap. |
| `model` | [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) | The [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) which defines the modelling directives for the new node or a null reference (Nothing in Visual Basic) if there are no directives are to be applied to the node. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `content` is a null reference (Nothing in Visual Basic). |

## Properties

### ReadNodeIdVariableValueCallback

Gets or sets a callback used to read the node identifier array variable value.

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

```csharp
public OpcReadNodeIdArrayVariableValueCallback ReadNodeIdVariableValueCallback { get; set; }
```

</div>

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

```vbnet
Public Property ReadNodeIdVariableValueCallback As OpcReadNodeIdArrayVariableValueCallback
```

</div>

**Property value**

[OpcReadNodeIdArrayVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodeidarrayvariablevaluecallback/)

A [OpcReadNodeIdArrayVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodeidarrayvariablevaluecallback/) used to read the node identifier array variable valueas the type [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/). The value can also be a null reference (Nothing in Visual Basic).

**Remarks**

This callback is used in call chain with the [ReadVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/members#readvariablevaluecallback) and will be called with the outcome of that callback routine (in case there is one defined).

### Value

Gets or sets the value of the variable node.

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

```csharp
public OpcNodeId[] Value { get; set; }
```

</div>

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

```vbnet
Public Property Value As OpcNodeId()
```

</div>

**Property value**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[]

A array of [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) objects representing the value of the variable node. This can be also a null reference (Nothing in Visual Basic).

### WriteNodeIdArrayVariableValueCallback

Gets or sets a callback used to write the node identifier array variable value.

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

```csharp
public OpcWriteNodeIdArrayVariableValueCallback WriteNodeIdArrayVariableValueCallback { get; set; }
```

</div>

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

```vbnet
Public Property WriteNodeIdArrayVariableValueCallback As OpcWriteNodeIdArrayVariableValueCallback
```

</div>

**Property value**

[OpcWriteNodeIdArrayVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritenodeidarrayvariablevaluecallback/)

A [OpcWriteNodeIdArrayVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritenodeidarrayvariablevaluecallback/) used to write the node identifier array variable valueas the type [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/). The value can also be a null reference (Nothing in Visual Basic).

**Remarks**

This callback is used in call chain with the [WriteVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/members#writevariablevaluecallback) and will be called with the outcome of that callback routine (in case there is one defined).

## Methods

### ReadNodeIdArrayValue

Reads the node identifier array value of the variable node.

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

```csharp
public OpcNodeId[] ReadNodeIdArrayValue(OpcReadVariableValueContext context)
```

</div>

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

```vbnet
Public Function ReadNodeIdArrayValue(
    context As OpcReadVariableValueContext) As OpcNodeId()
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcReadVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadvariablevaluecontext/) | The [OpcReadVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadvariablevaluecontext/) to use when reading the value. |

**Returns**

[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[]

The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) array value of the node identifier array variable node read.

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `context` is a null reference (Nothing in Visual Basic). |

### ReadNodeIdArrayVariableValueCore

<span class="api-meta">protected · virtual</span>

Reads the node identifier array value of the variable node using the `context` and `value` information specified.

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

```csharp
protected virtual OpcVariableValue<OpcNodeId[]> ReadNodeIdArrayVariableValueCore(
    OpcReadVariableValueContext<OpcNodeIdArrayVariableNode> context,
    OpcVariableValue<OpcNodeId[]> value)
```

</div>

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

```vbnet
Protected Overridable Function ReadNodeIdArrayVariableValueCore(
    context As OpcReadVariableValueContext(Of OpcNodeIdArrayVariableNode),
    value As OpcVariableValue(Of OpcNodeId())) As OpcVariableValue(Of OpcNodeId())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcReadVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadvariablevaluecontext-1/)&lt;[OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/)&gt; | The [OpcReadVariableValueContext&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadvariablevaluecontext-1/) to use to read the variable node value. |
| `value` | [OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[]&gt; | The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) containing the currently used value constructed by the value information contained in the variable node cache. |

**Returns**

[OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[]&gt;

The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) read using the [ReadNodeIdVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/members#readnodeidvariablevaluecallback) or the `value` if there is no custom callback routine defined.

### ReadVariableValueCore

<span class="api-meta">protected · override</span>

Reads the value of the variable node using the `context` and `value` information specified.

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

```csharp
protected override sealed OpcVariableValue<object> ReadVariableValueCore(
    OpcReadVariableValueContext context,
    OpcVariableValue<object> value)
```

</div>

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

```vbnet
Protected NotOverridable Overrides Function ReadVariableValueCore(
    context As OpcReadVariableValueContext,
    value As OpcVariableValue(Of Object)) As OpcVariableValue(Of Object)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcReadVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadvariablevaluecontext/) | The [OpcReadVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadvariablevaluecontext/) to use to read the variable node value. |
| `value` | [OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[Object](https://learn.microsoft.com/dotnet/api/system.object)&gt; | The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) containing the currently used value constructed by the value information contained in the variable node cache. |

**Returns**

[OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[Object](https://learn.microsoft.com/dotnet/api/system.object)&gt;

The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) read using the [ReadVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/members#readvariablevaluecallback) or the `value` if there is no custom callback routine defined.

**Overrides**

[ReadVariableValueCore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/members#readvariablevaluecore)

### WriteNodeIdArrayVariableValueCore

<span class="api-meta">protected · virtual</span>

Writes the node identifier array value of the variable node using the `context` and `value` information specified.

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

```csharp
protected virtual OpcVariableValue<OpcNodeId[]> WriteNodeIdArrayVariableValueCore(
    OpcWriteVariableValueContext<OpcNodeIdArrayVariableNode> context,
    OpcVariableValue<OpcNodeId[]> value)
```

</div>

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

```vbnet
Protected Overridable Function WriteNodeIdArrayVariableValueCore(
    context As OpcWriteVariableValueContext(Of OpcNodeIdArrayVariableNode),
    value As OpcVariableValue(Of OpcNodeId())) As OpcVariableValue(Of OpcNodeId())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcWriteVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritevariablevaluecontext-1/)&lt;[OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/)&gt; | The [OpcWriteVariableValueContext&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritevariablevaluecontext-1/) to use to write the variable node value. |
| `value` | [OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[]&gt; | The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) containing the currently used value constructed by the value information contained in the variable node cache. |

**Returns**

[OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[]&gt;

The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) written using the [WriteNodeIdArrayVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/members#writenodeidarrayvariablevaluecallback) or the `value` if there is no custom callback routine defined.

### WriteTextValue

Writes the value of the variable node specified by `value`.

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

```csharp
public void WriteTextValue(
    OpcWriteVariableValueContext context,
    params OpcNodeId[] value)
```

</div>

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

```vbnet
Public Sub WriteTextValue(
    context As OpcWriteVariableValueContext,
    ParamArray value As OpcNodeId())
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcWriteVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritevariablevaluecontext/) | The [OpcWriteVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritevariablevaluecontext/) to use when writing the value. |
| `value` | params [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/)[] | The [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) array value of the node identifier variable node to write. |

**Exceptions**

| Exception | Condition |
|---|---|
| [ArgumentNullException](https://learn.microsoft.com/dotnet/api/system.argumentnullexception) | The `context` is a null reference (Nothing in Visual Basic). |

### WriteVariableValueCore

<span class="api-meta">protected · override</span>

Writes the value of the variable node using the `context` and `value` information specified.

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

```csharp
protected override sealed OpcVariableValue<object> WriteVariableValueCore(
    OpcWriteVariableValueContext context,
    OpcVariableValue<object> value)
```

</div>

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

```vbnet
Protected NotOverridable Overrides Function WriteVariableValueCore(
    context As OpcWriteVariableValueContext,
    value As OpcVariableValue(Of Object)) As OpcVariableValue(Of Object)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `context` | [OpcWriteVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritevariablevaluecontext/) | The [OpcWriteVariableValueContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritevariablevaluecontext/) to use to write the variable node value. |
| `value` | [OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[Object](https://learn.microsoft.com/dotnet/api/system.object)&gt; | The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) containing the currently used value constructed by the value information contained in the variable node cache. |

**Returns**

[OpcVariableValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/)&lt;[Object](https://learn.microsoft.com/dotnet/api/system.object)&gt;

The [OpcVariableValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablevalue-1/) written using the [WriteVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/members#writevariablevaluecallback) or the `value` if there is no custom callback routine defined.

**Overrides**

[WriteVariableValueCore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/members#writevariablevaluecore)
