# IOpcDataTypeInfo Interface

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

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

Defines type declaration information used for data types.

## Syntax

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

```csharp
public interface IOpcDataTypeInfo
```

</div>

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

```vbnet
Public Interface IOpcDataTypeInfo
```

</div>

## Derived types

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

## Properties

| Name | Description |
|---|---|
| [BaseType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#basetype) | Gets the type from which the current IOpcDataTypeInfo directly inherits. |
| [Encoding](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#encoding) | Gets the information used to identify the type of encoding used for the data of the type represented. |
| [EncodingMask](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#encodingmask) | Gets the characteristics used to encode the existence of optional fields. |
| [Encodings](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#encodings) | Gets information of all encodings supported by the type represented. |
| [IsArray](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#isarray) | Gets a value indicating whether the type is an array. |
| [IsEnum](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#isenum) | Gets a value indicating whether the current IOpcDataTypeInfo represents an enumeration. |
| [IsOpaque](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#isopaque) | Gets a value indicating whether the current IOpcDataTypeInfo describes a primitive fixed size type. |
| [IsPrimitive](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#isprimitive) | Gets a value indicating whether the IOpcDataTypeInfo is one of the primitive types. |
| [IsStruct](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#isstruct) | Gets a value indicating whether the IOpcDataTypeInfo is a structured type; that is not a value type. |
| [IsSystemType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#issystemtype) | Gets a value indicating whether the current IOpcDataTypeInfo represents one of the predefined built-in data types defined by the OPC UA. |
| [IsUnion](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#isunion)<span class="api-meta">since v2.32</span> | Gets a value indicating whether the current IOpcDataTypeInfo represents a type which is only transported using a field indicator and the field indicated. |
| [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#name) | Gets a value which defines the non-localizable human-readable name of the type represented. |
| [Size](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#size) | Gets the size of the type represented as the number of bytes required. |
| [SizeInBits](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#sizeinbits) | Gets the size of the type represented as the number of bits required. |
| [TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#typeid) | Gets a value which identifies the type represented. |
| [UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#underlyingtype) | Gets the type which provides the implementation of the IOpcDataTypeInfo. |

## Methods

| Name | Description |
|---|---|
| [GetArrayRank](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#getarrayrank) | Gets the number of dimensions in an array. |
| [GetElementType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#getelementtype) | Returns the IOpcDataTypeInfo of the object encompassed or referred to by the current array. |
| [GetField](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#getfield) | Searches for the field with the specified `name`. |
| [GetFields](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#getfields) | Returns all the fields of the current IOpcDataTypeInfo. |
| [MakeArrayType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcdatatypeinfo/members#makearraytype)<span class="api-meta">2 overloads</span> | Returns a IOpcDataTypeInfo object representing a one-dimensional array of the current type, with a lower bound of zero. |

## Applies to

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