# OpcDataTypeInfo Class

<span class="api-meta">abstract · 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">OpcDataTypeInfo Members</a></dd>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

Represents type declarations used for data types.

## Syntax

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

```csharp
public abstract class OpcDataTypeInfo
```

</div>

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

```vbnet
Public MustInherit Class OpcDataTypeInfo
```

</div>

## Inheritance

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

## Implements

<ul class="api-implements">
<li><a href="../opc.uafx.iopcdatatypeinfo/">IOpcDataTypeInfo</a></li>
<li><a href="../opc.uafx.iopctype/">IOpcType</a></li>
</ul>

## Properties

| Name | Description |
|---|---|
| [BaseType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#basetype)<span class="api-meta">virtual</span> | Gets the type from which the current OpcDataTypeInfo directly inherits. |
| [ByteOrder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#byteorder)<span class="api-meta">virtual</span> | Gets the byte order of the data represented by the type. |
| [Category](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#category) | Gets the category the [IOpcType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopctype/) falls within. |
| [CustomAttributes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#customattributes)<span class="api-meta">virtual</span> | Gets an array of custom attributes associated with this type. |
| [Declarations](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#declarations)<span class="api-meta">virtual · since v2.26</span> | Gets a value indicating the ways used to declare the data type represented. |
| [Documentation](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#documentation)<span class="api-meta">virtual · since v2.9</span> | Gets any semantic information that would help a human to understand what the type represents. |
| [Empty](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#empty)<span class="api-meta">static</span> | Gets the type to use if their is no specific type data available. |
| [Encoding](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/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.opcdatatypeinfo/members#encodingmask)<span class="api-meta">virtual</span> | 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.opcdatatypeinfo/members#encodings)<span class="api-meta">virtual</span> | Gets information of all encodings supported by the type represented. |
| [IsArray](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#isarray)<span class="api-meta">virtual</span> | Gets a value indicating whether the type is an array. |
| [IsEmpty](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#isempty)<span class="api-meta">virtual</span> | Gets a value indicating whether the current OpcDataTypeInfo represents a type to use if there is no specific type described. |
| [IsEnum](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#isenum)<span class="api-meta">virtual</span> | Gets a value indicating whether the current OpcDataTypeInfo represents an enumeration. |
| [IsOpaque](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#isopaque)<span class="api-meta">virtual</span> | Gets a value indicating whether the current OpcDataTypeInfo describes a primitive fixed size type. |
| [IsPrimitive](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#isprimitive)<span class="api-meta">virtual</span> | Gets a value indicating whether the OpcDataTypeInfo is one of the primitive types. |
| [IsStruct](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#isstruct)<span class="api-meta">virtual</span> | Gets a value indicating whether the OpcDataTypeInfo is a structured type; that is not a value type. |
| [IsSystemType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#issystemtype)<span class="api-meta">virtual</span> | Gets a value indicating whether the current OpcDataTypeInfo 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.opcdatatypeinfo/members#isunion)<span class="api-meta">virtual · since v2.32</span> | Gets a value indicating whether the current OpcDataTypeInfo represents a type which is only transported using a field indicator and the field indicated. |
| [IsUnknown](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#isunknown)<span class="api-meta">virtual</span> | Gets a value indicating whether the OpcDataTypeInfo acts as a placeholder for a referenced type its type declaration could not resolved. |
| [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/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.opcdatatypeinfo/members#size)<span class="api-meta">virtual</span> | 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.opcdatatypeinfo/members#sizeinbits)<span class="api-meta">virtual</span> | Gets the size of the type represented as the number of bits required. |
| [TypeDictionary](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#typedictionary) | Gets the the [OpcDataTypeDictionary](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypedictionary/) which conains the data type declaration represented. |
| [TypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#typeid) | Gets a value which identifies the type represented. |
| [UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#underlyingtype) | Gets the type which provides the implementation of the OpcDataTypeInfo. |
| [XmlName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#xmlname) | Gets the [Name](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#name) of this OpcDataTypeInfo qualified with the [XmlNamespace](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypedictionary/members#xmlnamespace) of the [TypeDictionary](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#typedictionary) which conains the data type declaration represented. |

## Methods

| Name | Description |
|---|---|
| [GetArrayRank](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#getarrayrank)<span class="api-meta">virtual</span> | Gets the number of dimensions in an array. |
| [GetElementType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#getelementtype)<span class="api-meta">virtual</span> | Returns the OpcDataTypeInfo 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.opcdatatypeinfo/members#getfield) | Searches for the field with the specified `name`. |
| [GetFields](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#getfields) | Returns all the fields of the current OpcDataTypeInfo. |
| [GetFieldsCore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#getfieldscore)<span class="api-meta">protected · virtual</span> | When overriden in a derived class, searches for the fields defined for the current OpcDataTypeInfo. |
| [GetUnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#getunderlyingtype)<span class="api-meta">protected · virtual</span> | Retrieves the [Type](https://learn.microsoft.com/dotnet/api/system.type) which provides the implementation of the OpcDataTypeInfo. |
| [GetXmlName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#getxmlname)<span class="api-meta">static · 3 overloads</span> | Retrieves the [XmlQualifiedName](https://learn.microsoft.com/dotnet/api/system.xml.xmlqualifiedname) for the `name` and `xmlNamespace` specified. |
| [MakeArrayType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#makearraytype)<span class="api-meta">2 overloads</span> | Returns a OpcDataTypeInfo object representing a one-dimensional array of the current type, with a lower bound of zero. |
| [ToString](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#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.opcdatatypeinfo/members#name) or the [UnderlyingType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatatypeinfo/members#underlyingtype) of the current OpcDataTypeInfo. |

## Applies to

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