# OpcNodeInfo Members

> Reference: Provides properties and methods for the examination of the attributes and references of a node.

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

## Properties

### Category

Gets the classification of the node using one of the predefined categories.

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

```csharp
public OpcNodeCategory Category { get; }
```

</div>

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

```vbnet
Public ReadOnly Property Category As OpcNodeCategory
```

</div>

**Property value**

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

One of the members defined by the [OpcNodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/) enumeration.

**Implements**

[Category](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#category)

**Remarks**

Using a category a node can be classified into different top level kinds of nodes like methods, objects, variables and different types.

### Context

Gets the browse setup and context to use to inspect the node, its attributes and its relationships to other nodes.

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

```csharp
public OpcBrowseNodeContext Context { get; }
```

</div>

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

```vbnet
Public ReadOnly Property Context As OpcBrowseNodeContext
```

</div>

**Property value**

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

An instance of the [OpcBrowseNodeContext](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcbrowsenodecontext/) class which has been initially created using the configuration specified by the initial browse call using the entry node.

### DisplayName

Gets the value of the [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#displayname) attribute which defines the localizable name of the node.

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

```csharp
public OpcText DisplayName { get; }
```

</div>

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

```vbnet
Public ReadOnly Property DisplayName As OpcText
```

</div>

**Property value**

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

An instance of the [OpcText](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/) class which defines the localizable name of the node.

**Implements**

[DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#displayname)

**Remarks**

Client application should use this attribute if they want to display the name of the node to the user. The [string](https://learn.microsoft.com/dotnet/api/system.string) part of the [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#displayname) is restricted to 512 characters.

### Name

Gets the nominal information of the node represented.

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

```csharp
public OpcName Name { get; }
```

</div>

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

```vbnet
Public ReadOnly Property Name As OpcName
```

</div>

**Property value**

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

An instance of the [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) class providing the nominal information about the node.

**Implements**

[Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#name)

### NodeId

Gets the node identifier of the node represented.

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

```csharp
public OpcNodeId NodeId { get; }
```

</div>

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

```vbnet
Public ReadOnly Property NodeId As OpcNodeId
```

</div>

**Property value**

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

An instance of the [OpcNodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeid/) class providing the (unresolved) node identifier of the node.

### Reference

Gets the description of the node reference through that the node represented and examined has been located.

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

```csharp
public OpcReferenceDescription Reference { get; }
```

</div>

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

```vbnet
Public ReadOnly Property Reference As OpcReferenceDescription
```

</div>

**Property value**

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

An instance of the [OpcReferenceDescription](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencedescription/) class which provides information about the relationship through that the node has been located.

## Methods

### Attribute

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

| Overload | Description |
|---|---|
| [Attribute(OpcAttribute)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#attribute-opc-uafx-opcattribute) | Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that has the specified [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier. |
| [Attribute(string)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#attribute-system-string) | Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that is known using the specified `browseName`. |

#### Attribute(OpcAttribute)

Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that has the specified [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier.

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

```csharp
public OpcAttributeInfo Attribute(OpcAttribute attribute)
```

</div>

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

```vbnet
Public Function Attribute(attribute As OpcAttribute) As OpcAttributeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `attribute` | [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) | The [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier of the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) to retrieve. |

**Returns**

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

An [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) that has the specified [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier; otherwise a null reference (Nothing in Visual Basic) in case there the server does not provide such an attribute for the node.

**Remarks**

Although the server may provide an attribute, the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) (= an [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/)) or its underlying raw value ([Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/members#value)) can be a null reference (Nothing in Visual Basic). Ensure that the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) may needs to be cast into the attribute dependent type.

The time consumed by the first call of the method depends on the availability of the server, because of the attribute is requested on-demand and is cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

#### Attribute(string)

Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that is known using the specified `browseName`.

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

```csharp
public OpcAttributeInfo Attribute(string browseName)
```

</div>

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

```vbnet
Public Function Attribute(browseName As String) As OpcAttributeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `browseName` | [String](https://learn.microsoft.com/dotnet/api/system.string) | The known browse name of the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) to retrieve. |

**Returns**

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

An [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) that is known using the specified `browseName`; otherwise a null reference (Nothing in Visual Basic) in case there the server does not provide such an attribute for the node.

**Exceptions**

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

**Remarks**

Although the server may provide an attribute, the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) (= an [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/)) or its underlying raw value ([Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/members#value)) can be a null reference (Nothing in Visual Basic). Ensure that the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) may needs to be cast into the attribute dependent type.

The time consumed by the first call of the method depends on the availability of the server, because of the attribute is requested on-demand and is cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

### Attributes

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

| Overload | Description |
|---|---|
| [Attributes()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#attributes-noparams) | Retrieves for each [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier the according [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node. |
| [Attributes(IEnumerable&lt;OpcAttribute&gt;)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#attributes-system-collections-generic-ienumerable-of-opc-uafx-opcattribute) | Retrieves for each [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier specified by `attributes` the according [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node. |
| [Attributes(params OpcAttribute\[\])](#attributes-opc-uafx-opcattribute-array) | Retrieves for each [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier specified by `attributes` the according [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node. |
| [Attributes(IEnumerable&lt;string&gt;)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#attributes-system-collections-generic-ienumerable-of-system-string) | Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that is known using the specified `browseNames`. |
| [Attributes(params string\[\])](#attributes-system-string-array) | Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that is known using the specified `browseNames`. |

#### Attributes()

Retrieves for each [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier the according [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node.

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

```csharp
public IEnumerable<OpcAttributeInfo> Attributes()
```

</div>

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

```vbnet
Public Function Attributes() As IEnumerable(Of OpcAttributeInfo)
```

</div>

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/)&gt;

A sequence of [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) instances which provides the attribute identifier and attribute value of all in general defined node attributes (see [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/)).

**Remarks**

Although the server may provide an attribute, the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) (= an [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/)) or its underlying raw value ([Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/members#value)) can be a null reference (Nothing in Visual Basic). Ensure that the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) may needs to be cast into the attribute dependent type.

The time consumed by the first call of the method depends on the availability of the server, because of the attributes are requested on-demand and are cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

#### Attributes(IEnumerable&lt;OpcAttribute&gt;)

Retrieves for each [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier specified by `attributes` the according [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node.

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

```csharp
public IEnumerable<OpcAttributeInfo> Attributes(
    IEnumerable<OpcAttribute> attributes)
```

</div>

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

```vbnet
Public Function Attributes(
    attributes As IEnumerable(Of OpcAttribute)) As IEnumerable(Of OpcAttributeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `attributes` | [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/)&gt; | A sequence of [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifiers of the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) instances to retrieve. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/)&gt;

A sequence of [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) instances which provides the attribute identifier and attribute value of the node attributes specified by the [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifiers defined by `attributes`.

**Exceptions**

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

**Remarks**

Although the server may provide an attribute, the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) (= an [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/)) or its underlying raw value ([Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/members#value)) can be a null reference (Nothing in Visual Basic). Ensure that the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) may needs to be cast into the attribute dependent type.

The time consumed by the first call of the method depends on the availability of the server, because of the attributes are requested on-demand and are cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

#### Attributes(params OpcAttribute\[\])

Retrieves for each [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifier specified by `attributes` the according [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node.

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

```csharp
public IEnumerable<OpcAttributeInfo> Attributes(
    params OpcAttribute[] attributes)
```

</div>

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

```vbnet
Public Function Attributes(
    ParamArray attributes As OpcAttribute()) As IEnumerable(Of OpcAttributeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `attributes` | params [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/)[] | An array of [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifiers of the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) instances to retrieve. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/)&gt;

An array of [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) instances which provides the attribute identifier and attribute value of the node attributes specified by the [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) identifiers defined by `attributes`.

**Exceptions**

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

**Remarks**

Although the server may provide an attribute, the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) (= an [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/)) or its underlying raw value ([Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/members#value)) can be a null reference (Nothing in Visual Basic). Ensure that the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) may needs to be cast into the attribute dependent type.

The time consumed by the first call of the method depends on the availability of the server, because of the attributes are requested on-demand and are cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

#### Attributes(IEnumerable&lt;string&gt;)

Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that is known using the specified `browseNames`.

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

```csharp
public IEnumerable<OpcAttributeInfo> Attributes(IEnumerable<string> browseNames)
```

</div>

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

```vbnet
Public Function Attributes(
    browseNames As IEnumerable(Of String)) As IEnumerable(Of OpcAttributeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `browseNames` | [IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[String](https://learn.microsoft.com/dotnet/api/system.string)&gt; | A sequence of known browse names of the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) to retrieve. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/)&gt;

A sequence of [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) instances which provides the attribute identifier and attribute value of the node attributes specified by the `browseNames` passed.

**Exceptions**

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

**Remarks**

Although the server may provide an attribute, the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) (= an [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/)) or its underlying raw value ([Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/members#value)) can be a null reference (Nothing in Visual Basic). Ensure that the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) may needs to be cast into the attribute dependent type.

The time consumed by the first call of the method depends on the availability of the server, because of the attributes are requested on-demand and are cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

#### Attributes(params string\[\])

Retrieves the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) of the node that is known using the specified `browseNames`.

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

```csharp
public IEnumerable<OpcAttributeInfo> Attributes(params string[] browseNames)
```

</div>

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

```vbnet
Public Function Attributes(
    ParamArray browseNames As String()) As IEnumerable(Of OpcAttributeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `browseNames` | params [String](https://learn.microsoft.com/dotnet/api/system.string)[] | An array of known browse names of the [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) to retrieve. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/)&gt;

A sequence of [OpcAttributeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/) instances which provides the attribute identifier and attribute value of the node attributes specified by the `browseNames` passed.

**Exceptions**

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

**Remarks**

Although the server may provide an attribute, the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) (= an [OpcValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/)) or its underlying raw value ([Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvalue/members#value)) can be a null reference (Nothing in Visual Basic). Ensure that the [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcattributeinfo/members#value) may needs to be cast into the attribute dependent type.

The time consumed by the first call of the method depends on the availability of the server, because of the attributes are requested on-demand and are cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

### AttributeValue

<span class="api-meta">2 overloads · since v2.9</span>

| Overload | Description |
|---|---|
| [AttributeValue(OpcAttribute)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#attributevalue-opc-uafx-opcattribute)<span class="api-meta">since v2.9</span> | Retrieves the value of the `attribute` specified. |
| [AttributeValue&lt;T&gt;(OpcAttribute)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#attributevalue-t1-opc-uafx-opcattribute)<span class="api-meta">since v2.9</span> | Retrieves the value of the `attribute` specified. |

#### AttributeValue(OpcAttribute)

<span class="api-meta">since v2.9</span>

Retrieves the value of the `attribute` specified.

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

```csharp
public object AttributeValue(OpcAttribute attribute)
```

</div>

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

```vbnet
Public Function AttributeValue(attribute As OpcAttribute) As Object
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `attribute` | [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) | One of the members defined by the [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) enumeration which identifies the attribute its value is queried. |

**Returns**

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

The value of the `attribute` specified or a null reference (Nothing in Visual Basic) in case there the value of the attribute is a null reference or it is not supported by the current [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

**Implements**

[AttributeValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#attributevalue-opc-uafx-opcattribute)

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the attribute is requested on-demand and is cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

#### AttributeValue&lt;T&gt;(OpcAttribute)

<span class="api-meta">since v2.9</span>

Retrieves the value of the `attribute` specified.

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

```csharp
public T AttributeValue<T>(OpcAttribute attribute)
```

</div>

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

```vbnet
Public Function AttributeValue(Of T)(attribute As OpcAttribute) As T
```

</div>

**Type parameters**

| Name | Description |
|---|---|
| `T` | The expected type of value the attribute shall offer. |

**Parameters**

| Name | Type | Description |
|---|---|---|
| `attribute` | [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) | One of the members defined by the [OpcAttribute](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/) enumeration which identifies the attribute its value is queried. |

**Returns**

T

The value of the `attribute` as the type `T` specified or the default value of the type `T` in case there the value of the attribute is a null reference (Nothing in Visual Basic) or it is not supported by the current [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

**Implements**

[AttributeValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#attributevalue-t1-opc-uafx-opcattribute)

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the attribute is requested on-demand and is cached for subsequent calls. This means, that further attribute requests will take use of already retrieved attribute information and will not demand additional network resources.

To improve the performance to query attributes you may consider the configuration of the attributes to prefetch while browsing the nodes using [Attributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcbrowsenode/members#attributes).

### Child

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

| Overload | Description |
|---|---|
| [Child(string)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#child-system-string) | Retrieves the [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) of the child node that is known using the specified `name` of the node. |
| [Child(OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#child-opc-uafx-opcname)<span class="api-meta">since v2.19</span> | Retrieves the [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#name) matches exactly the `name` specified. |
| [Child(OpcNamePath)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#child-opc-uafx-opcnamepath)<span class="api-meta">since v2.19</span> | Retrieves the [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) following the path-of-names using the nodes its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#name) matches exactly the parts of the `namePath` specified. |

#### Child(string)

Retrieves the [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) of the child node that is known using the specified `name` of the node.

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

```csharp
public OpcNodeInfo Child(string name)
```

</div>

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

```vbnet
Public Function Child(name As String) As OpcNodeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [String](https://learn.microsoft.com/dotnet/api/system.string) | The nominal information of the child node to retrieve. |

**Returns**

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

An [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) that is known using the specified `name`; otherwise a null reference (Nothing in Visual Basic) in case there the server does not provide such a child node for the node.

**Exceptions**

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

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the child is requested on-demand and is cached for subsequent calls. This means, that further child requests will take use of already retrieved child information and will not demand additional network resources.

#### Child(OpcName)

<span class="api-meta">since v2.19</span>

Retrieves the [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#name) matches exactly the `name` specified.

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

```csharp
public OpcNodeInfo Child(OpcName name)
```

</div>

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

```vbnet
Public Function Child(name As OpcName) As OpcNodeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) | The full qualified [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/) of the node to lookup. |

**Returns**

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

An [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) that is known using the `name` specified, if such a node is a known child of this node. Otherwise a null reference (Nothing in Basic).

**Exceptions**

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

#### Child(OpcNamePath)

<span class="api-meta">since v2.19</span>

Retrieves the [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) following the path-of-names using the nodes its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#name) matches exactly the parts of the `namePath` specified.

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

```csharp
public OpcNodeInfo Child(OpcNamePath namePath)
```

</div>

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

```vbnet
Public Function Child(namePath As OpcNamePath) As OpcNodeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `namePath` | [OpcNamePath](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamepath/) | The [OpcNamePath](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamepath/) of full qualified [OpcName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/)s of the nodes to follow. |

**Returns**

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

An [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) that has been lookup following the `namePath` specified, if such a node is a known child of this node (and its children). Otherwise a null reference (Nothing in Basic).

**Exceptions**

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

### Children

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

| Overload | Description |
|---|---|
| [Children()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#children-noparams) | Retrieves for each child node of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/). |
| [Children(OpcNodeCategory)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#children-opc-uafx-opcnodecategory) | Retrieves for each child node of the `category` specified of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/). |
| [Children(OpcReferenceType)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#children-opc-uafx-opcreferencetype)<span class="api-meta">since v2.8</span> | Retrieves for each child node referenced using the `referenceType` specified the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/). |

#### Children()

Retrieves for each child node of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

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

```csharp
public IEnumerable<OpcNodeInfo> Children()
```

</div>

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

```vbnet
Public Function Children() As IEnumerable(Of OpcNodeInfo)
```

</div>

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)&gt;

A sequence of [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) instances which provides the node information of all nodes referenced as child (see [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)).

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the nodes are requested on-demand and are cached for subsequent calls. This means, that further child requests will take use of already retrieved child information and will not demand additional network resources.

#### Children(OpcNodeCategory)

Retrieves for each child node of the `category` specified of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

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

```csharp
public IEnumerable<OpcNodeInfo> Children(OpcNodeCategory category)
```

</div>

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

```vbnet
Public Function Children(
    category As OpcNodeCategory) As IEnumerable(Of OpcNodeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `category` | [OpcNodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/) | One of the members defined by the [OpcNodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/) enumeration which defines the classification of the child nodes to retrieve or a combination of the members. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)&gt;

A sequence of [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) instances which provides the node information of all nodes referenced as child of the `category` specified.

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the nodes are requested on-demand and are cached for subsequent calls. This means, that further child requests will take use of already retrieved child information and will not demand additional network resources.

#### Children(OpcReferenceType)

<span class="api-meta">since v2.8</span>

Retrieves for each child node referenced using the `referenceType` specified the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

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

```csharp
public IEnumerable<OpcNodeInfo> Children(OpcReferenceType referenceType)
```

</div>

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

```vbnet
Public Function Children(
    referenceType As OpcReferenceType) As IEnumerable(Of OpcNodeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `referenceType` | [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) | One of the members defined by the [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) enumeration which defines the type of reference between the node represented and child nodes to retrieve. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)&gt;

A sequence of [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) instances which provides the node information of all nodes referenced as child using the `referenceType` specified.

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the nodes are requested on-demand and are cached for subsequent calls. This means, that further child requests will take use of already retrieved child information and will not demand additional network resources.

In case there the `referenceType` specified is not part of the reference types browsed using the [Context](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#context) of the current [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) (see [ReferenceTypeIds](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcbrowsenodecontext/members#referencetypeids)) there is separate browse operation performed to query the children requested. In this case the child nodes are not cached and are re-queried on every call to this method.

### Parent

Retrieves the [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) of the parent node that is known using the specified `name` of the node.

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

```csharp
public OpcNodeInfo Parent(string name)
```

</div>

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

```vbnet
Public Function Parent(name As String) As OpcNodeInfo
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `name` | [String](https://learn.microsoft.com/dotnet/api/system.string) | The nominal information of the parent node to retrieve. |

**Returns**

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

An [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) that is known using the specified `name`; otherwise a null reference (Nothing in Visual Basic) in case there the server does not provide such a parent node for the node.

**Exceptions**

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

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the parent is requested on-demand and is cached for subsequent calls. This means, that further parent requests will take use of already retrieved parent information and will not demand additional network resources.

### Parents

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

| Overload | Description |
|---|---|
| [Parents()](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#parents-noparams) | Retrieves for each parent node of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/). |
| [Parents(OpcNodeCategory)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#parents-opc-uafx-opcnodecategory) | Retrieves for each parent node of the `category` specified of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/). |
| [Parents(OpcReferenceType)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#parents-opc-uafx-opcreferencetype)<span class="api-meta">since v2.8</span> | Retrieves for each parent node referenced using the `referenceType` specified the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/). |

#### Parents()

Retrieves for each parent node of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

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

```csharp
public IEnumerable<OpcNodeInfo> Parents()
```

</div>

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

```vbnet
Public Function Parents() As IEnumerable(Of OpcNodeInfo)
```

</div>

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)&gt;

A sequence of [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) instances which provides the node information of all nodes referenced as parent (see [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)).

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the nodes are requested on-demand and are cached for subsequent calls. This means, that further parent requests will take use of already retrieved parent information and will not demand additional network resources.

#### Parents(OpcNodeCategory)

Retrieves for each parent node of the `category` specified of the node represented the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

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

```csharp
public IEnumerable<OpcNodeInfo> Parents(OpcNodeCategory category)
```

</div>

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

```vbnet
Public Function Parents(
    category As OpcNodeCategory) As IEnumerable(Of OpcNodeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `category` | [OpcNodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/) | One of the members defined by the [OpcNodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodecategory/) enumeration which defines the classification of the parent nodes to retrieve or a combination of the members. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)&gt;

A sequence of [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) instances which provides the node information of all nodes referenced as parent of the `category` specified.

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the nodes are requested on-demand and are cached for subsequent calls. This means, that further parent requests will take use of already retrieved parent information and will not demand additional network resources.

#### Parents(OpcReferenceType)

<span class="api-meta">since v2.8</span>

Retrieves for each parent node referenced using the `referenceType` specified the according [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/).

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

```csharp
public IEnumerable<OpcNodeInfo> Parents(OpcReferenceType referenceType)
```

</div>

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

```vbnet
Public Function Parents(
    referenceType As OpcReferenceType) As IEnumerable(Of OpcNodeInfo)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `referenceType` | [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) | One of the members defined by the [OpcReferenceType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreferencetype/) enumeration which defines the type of reference between the node represented and parent nodes to retrieve. |

**Returns**

[IEnumerable](https://learn.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1)&lt;[OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/)&gt;

A sequence of [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) instances which provides the node information of all nodes referenced as parent using the `referenceType` specified.

**Remarks**

The time consumed by the first call of the method depends on the availability of the server, because of the nodes are requested on-demand and are cached for subsequent calls. This means, that further child requests will take use of already retrieved child information and will not demand additional network resources.

In case there the `referenceType` specified is not part of the reference types browsed using the [Context](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#context) of the current [OpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/) (see [ReferenceTypeIds](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcbrowsenodecontext/members#referencetypeids)) there is separate browse operation performed to query the parents requested. In this case the parent nodes are not cached and are re-queried on every call to this method.
