# OpcNodeMemberInfo Members

> Reference: Provides metadata of a member declared by a node type.

<dl class="api-definition">
<dt>Type</dt>
<dd><a href="./">OpcNodeMemberInfo</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>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

## Properties

### Category

<span class="api-meta">abstract · since v2.50</span>

Gets the [NodeCategory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#nodecategory) attribute which identifies the kind of node and is therefore used to classify the node regarding its use and purpose.

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

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

</div>

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

```vbnet
Public MustOverride 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)

### DeclaringType

Gets the type that declares the current [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/).

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

```csharp
public OpcNodeTypeInfo DeclaringType { get; }
```

</div>

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

```vbnet
Public ReadOnly Property DeclaringType As OpcNodeTypeInfo
```

</div>

**Property value**

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

An instance of the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) which declares the current [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/).

### Description

<span class="api-meta">abstract · since v2.50</span>

Gets the value of the optional [Description](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#description) attribute which shall explain the meaning of the node.

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

```csharp
public abstract OpcText Description { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property Description As OpcText
```

</div>

**Property value**

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

A localizable instance of the [OpcText](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/) class which optionally explains the meaning of the node or a null reference (Nothing in Visual Basic) if there is no description associated with the node.

**Implements**

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

**Remarks**

The menaning of the node defines the usage, the context and the purpose of the node.

### DisplayName

<span class="api-meta">abstract · since v2.50</span>

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 abstract OpcText DisplayName { get; }
```

</div>

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

```vbnet
Public MustOverride 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.opcnodememberinfo/members#displayname) is restricted to 512 characters.

### Documentation

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

Gets any semantic information that would help a human to understand what is contained in the member.

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

```csharp
public virtual string Documentation { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property Documentation As String
```

</div>

**Property value**

[String](https://learn.microsoft.com/dotnet/api/system.string)

A human readable text that describes what is contained in the member and that would help a human to understand what the member represented.

### Id

<span class="api-meta">abstract · since v2.50</span>

Gets the value of the [NodeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#nodeid) attribute which unambiguously identifies the node.

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

```csharp
public abstract OpcNodeId Id { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property Id 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 representing the unambiguously identifier of the node.

**Implements**

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

**Remarks**

Some servers may accept alternative node identifiers in addition to the canonical node identifier represented by this attribute.

A server shall persist the node identifier of a node, that is, it shall not generate new node identifiers when rebooting.

### IsOptional

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

Gets a value indicating whether the current member might not necessarily exist in the object defined by the [DeclaringType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#declaringtype).

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

```csharp
public virtual bool IsOptional { get; }
```

</div>

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

```vbnet
Public Overridable ReadOnly Property IsOptional As Boolean
```

</div>

**Property value**

[Boolean](https://learn.microsoft.com/dotnet/api/system.boolean)

The value true if the member might not always exists; otherwise the value false.

**Implements**

[IsOptional](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodemodellingorder/members#isoptional)

### MemberType

Gets the type of value this member provides.

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

```csharp
public OpcNodeTypeInfo MemberType { get; }
```

</div>

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

```vbnet
Public ReadOnly Property MemberType As OpcNodeTypeInfo
```

</div>

**Property value**

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

The [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) representing the type of value this member provides.

### Name

Gets the value of the [BrowseName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#browsename) attribute which defines the non-localizable human-readable name used when browsing the address space.

<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/)

**Implements**

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

**Remarks**

The [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) should never be used to display the name of the a node. Use the [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#displayname) instead for this purpose.

Unlike node identifiers the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) cannot be used to unambiguously identify the node. Different nodes may have the same browse name. The namespace is provided to make the browse name unique in some cases in the context of a node (e.g. properties of a node) although not unique in the context of the server. If different organizations define browse names for properties, the namespace of the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) provided by the organization makes the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) unique, although different organizations may use the same string having a slightly different meaning. Servers may often choose to use the same namespace for the node identifier and the browse name. However, if they want to provide a standard property, its browse name shall have the namespace of the standards body although the namespace of the node identifier reflects something else, for example the local server.

It is recommended that standard bodies defining standard type definitions use their namespace for the node identifier of the type definition node as well as for the browse name of the type definition node.

The [string](https://learn.microsoft.com/dotnet/api/system.string)-part of the browse name is case sensitive. That is, clients shall consider them case sensitive. Server are allowed to handle browse names passed in service requests as case insensitive.

Use the value of this property to construct browse paths (see [OpcNamePath](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamepath/)).

### Parent

<span class="api-meta">abstract · since v2.50</span>

Gets the node which contains the member.

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

```csharp
public abstract IOpcNodeInfo Parent { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property Parent As IOpcNodeInfo
```

</div>

**Property value**

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

An instance implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface which represents the parent node of the member, or a null reference (Nothing in Visual Basic) if no parent node is known.

**Exceptions**

| Exception | Condition |
|---|---|
| [NotSupportedException](https://learn.microsoft.com/dotnet/api/system.notsupportedexception) | The member is declared by a node type defined by a .NET type. |

**Implements**

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

### ReflectedType

Gets the type that was used to obtain this instance of [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/).

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

```csharp
public OpcNodeTypeInfo ReflectedType { get; }
```

</div>

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

```vbnet
Public ReadOnly Property ReflectedType As OpcNodeTypeInfo
```

</div>

**Property value**

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

An instance of the [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) used to obtain this instance.

### Rule

<span class="api-meta">abstract · since v2.50</span>

Gets the modelling rule of the member.

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

```csharp
public abstract OpcModellingRule? Rule { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property Rule As OpcModellingRule?
```

</div>

**Property value**

[Nullable](https://learn.microsoft.com/dotnet/api/system.nullable-1)&lt;[OpcModellingRule](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmodellingrule/)&gt;

One of the members defined by the [OpcModellingRule](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmodellingrule/) enumeration, or a null reference (Nothing in Visual Basic) if the member has no modelling rule or it can't be determined.

**Exceptions**

| Exception | Condition |
|---|---|
| [NotSupportedException](https://learn.microsoft.com/dotnet/api/system.notsupportedexception) | The member is declared by a node type defined by a .NET type. |

**Implements**

[Rule](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodemodellingorder/members#rule)

### SymbolicName

<span class="api-meta">abstract · since v2.50</span>

Gets a symbolic name for the member which is not expected to be globally unique.

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

```csharp
public abstract string SymbolicName { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property SymbolicName As String
```

</div>

**Property value**

[String](https://learn.microsoft.com/dotnet/api/system.string)

The symbolic name of the member, or a null reference (Nothing in Visual Basic) if there is no symbolic name assigned.

**Exceptions**

| Exception | Condition |
|---|---|
| [NotSupportedException](https://learn.microsoft.com/dotnet/api/system.notsupportedexception) | The member is declared by a node type defined by a .NET type. |

**Implements**

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

### UserWriteAccess

<span class="api-meta">abstract · since v2.50</span>

Gets the value of the optional [UserWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#userwriteaccess) attribute of the member which exposes the possibilities of a client to write the attributes of the member taking user access rights into account.

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

```csharp
public abstract OpcAttributeWriteAccess UserWriteAccess { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property UserWriteAccess As OpcAttributeWriteAccess
```

</div>

**Property value**

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

A combination of the members defined by the [OpcAttributeWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattributewriteaccess/) enumeration.

**Exceptions**

| Exception | Condition |
|---|---|
| [NotSupportedException](https://learn.microsoft.com/dotnet/api/system.notsupportedexception) | The member is declared by a node type defined by a .NET type. |

**Implements**

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

### WriteAccess

<span class="api-meta">abstract · since v2.50</span>

Gets the value of the optional [WriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattribute/#writeaccess) attribute of the member which exposes the possibilities of a client to write the attributes of the member.

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

```csharp
public abstract OpcAttributeWriteAccess WriteAccess { get; }
```

</div>

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

```vbnet
Public MustOverride ReadOnly Property WriteAccess As OpcAttributeWriteAccess
```

</div>

**Property value**

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

A combination of the members defined by the [OpcAttributeWriteAccess](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcattributewriteaccess/) enumeration.

**Exceptions**

| Exception | Condition |
|---|---|
| [NotSupportedException](https://learn.microsoft.com/dotnet/api/system.notsupportedexception) | The member is declared by a node type defined by a .NET type. |

**Implements**

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

## Methods

### AttributeValue

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

| Overload | Description |
|---|---|
| [AttributeValue(OpcAttribute)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#attributevalue-opc-uafx-opcattribute)<span class="api-meta">abstract · since v2.50</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.opcnodememberinfo/members#attributevalue-t1-opc-uafx-opcattribute)<span class="api-meta">abstract · since v2.50</span> | Retrieves the value of the `attribute` specified. |

#### AttributeValue(OpcAttribute)

<span class="api-meta">abstract · since v2.50</span>

Retrieves the value of the `attribute` specified.

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

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

</div>

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

```vbnet
Public MustOverride 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 [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/).

**Implements**

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

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

<span class="api-meta">abstract · since v2.50</span>

Retrieves the value of the `attribute` specified.

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

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

</div>

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

```vbnet
Public MustOverride 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 [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/).

**Implements**

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

### Child

<span class="api-meta">abstract · 3 overloads · since v2.50</span>

| Overload | Description |
|---|---|
| [Child(string)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#child-system-string)<span class="api-meta">abstract · since v2.50</span> | Retrieves the immutable child node its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#value)) or [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#displayname) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/members#value)) matches the specified `name` of the node. |
| [Child(OpcName)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#child-opc-uafx-opcname)<span class="api-meta">abstract · since v2.50</span> | Retrieves the immutable child node its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) matches exactly the `name` specified. |
| [Child(OpcNamePath)](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#child-opc-uafx-opcnamepath)<span class="api-meta">abstract · since v2.50</span> | Retrieves the immutable child node following the path-of-names using the nodes its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) matches exactly the parts of the `namePath` specified. |

#### Child(string)

<span class="api-meta">abstract · since v2.50</span>

Retrieves the immutable child node its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcname/members#value)) or [DisplayName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#displayname) (its [Value](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opctext/members#value)) matches the specified `name` of the node.

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

```csharp
public abstract IOpcNodeInfo Child(string name)
```

</div>

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

```vbnet
Public MustOverride Function Child(name As String) As IOpcNodeInfo
```

</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**

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

An instance implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface 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). |

**Implements**

[Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#child-system-string)

#### Child(OpcName)

<span class="api-meta">abstract · since v2.50</span>

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

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

```csharp
public abstract IOpcNodeInfo Child(OpcName name)
```

</div>

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

```vbnet
Public MustOverride Function Child(name As OpcName) As IOpcNodeInfo
```

</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**

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

An instance implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface its [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) exactly matches the `name` specified, if such a node is a known child of this node. Otherwise a null reference (Nothing in Visual Basic).

**Exceptions**

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

**Implements**

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

#### Child(OpcNamePath)

<span class="api-meta">abstract · since v2.50</span>

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

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

```csharp
public abstract IOpcNodeInfo Child(OpcNamePath namePath)
```

</div>

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

```vbnet
Public MustOverride Function Child(namePath As OpcNamePath) As IOpcNodeInfo
```

</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**

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

An instance implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface 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). |

**Implements**

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

### Children

<span class="api-meta">abstract · since v2.50</span>

Retrieves a sequence of immutable nodes organized as children of this node.

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

```csharp
public abstract IEnumerable<IOpcNodeInfo> Children()
```

</div>

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

```vbnet
Public MustOverride Function Children() As IEnumerable(Of IOpcNodeInfo)
```

</div>

**Returns**

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

A sequence of instances implementing the [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) interface which representing the nodes organized as child nodes of this node.

**Implements**

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

### GetValue

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

Gets the value of the member supported by the given object `instance`.

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

```csharp
public virtual object GetValue(object instance)
```

</div>

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

```vbnet
Public Overridable Function GetValue(instance As Object) As Object
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `instance` | [Object](https://learn.microsoft.com/dotnet/api/system.object) | The [object](https://learn.microsoft.com/dotnet/api/system.object) whose member value will be returned. |

**Returns**

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

An object containing the value of the member reflected by this instance.

**Implements**

[GetValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodememberinfo/members#getvalue)

**Remarks**

This method throws a [NotSupportedException](https://learn.microsoft.com/dotnet/api/system.notsupportedexception) and have to be overridden in a derived class.

### References

<span class="api-meta">abstract · since v2.50</span>

Retrieves a sequence of immutable references between this node member and other nodes.

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

```csharp
public abstract IEnumerable<OpcReference> References()
```

</div>

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

```vbnet
Public MustOverride Function References() As IEnumerable(Of OpcReference)
```

</div>

**Returns**

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

A sequence of [OpcReference](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreference/) instances providing hierarchical and non-hierarchical references from this node member to other nodes.

**Implements**

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

### SetValue

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

Sets the value of the member supported by the given object `instance`.

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

```csharp
public virtual void SetValue(object instance, object value)
```

</div>

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

```vbnet
Public Overridable Sub SetValue(instance As Object, value As Object)
```

</div>

**Parameters**

| Name | Type | Description |
|---|---|---|
| `instance` | [Object](https://learn.microsoft.com/dotnet/api/system.object) | The [object](https://learn.microsoft.com/dotnet/api/system.object) whose member value will be set. |
| `value` | [Object](https://learn.microsoft.com/dotnet/api/system.object) | The value to assign to the member. |

**Implements**

[SetValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodememberinfo/members#setvalue)

**Remarks**

This method throws a [NotSupportedException](https://learn.microsoft.com/dotnet/api/system.notsupportedexception) and have to be overridden in a derived class.

### ToString

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

Returns a [string](https://learn.microsoft.com/dotnet/api/system.string) representing the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) and [MemberType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#membertype) of the current [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/).

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

```csharp
public override string ToString()
```

</div>

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

```vbnet
Public Overrides Function ToString() As String
```

</div>

**Returns**

[String](https://learn.microsoft.com/dotnet/api/system.string)

A [string](https://learn.microsoft.com/dotnet/api/system.string) representing the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#name) and the [MemberType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/members#membertype) of the current [OpcNodeMemberInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodememberinfo/).

**Overrides**

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