# OpcDataSurrogate 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">OpcDataSurrogate Members</a></dd>
<dt>Also in</dt>
<dd>Opc.UaFx.Client</dd>
</dl>

Provides a surrogate used to transport the encoding of data structures its structural information is resolved dynamically at runtime. This information is then transformed into a dynamically determined subclass of the [OpcData](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdata/) class. The SDK uses this class in turn to create an instance which is able to represent and understand the encoded structured data. This class serves mechanisms required by the OPC UA Framework infrastructure and it is not intended to be used directly in your code.

## Syntax

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

```csharp
public abstract class OpcDataSurrogate
```

</div>

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

```vbnet
Public MustInherit Class OpcDataSurrogate
```

</div>

## Inheritance

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

## Constructors

| Name | Description |
|---|---|
| [OpcDataSurrogate](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatasurrogate/members#opcdatasurrogate)<span class="api-meta">protected</span> | Initializes a new instance of the OpcDataSurrogate class using the identifier of the encoding associated with and transported by the new surrogate. |

## Properties

| Name | Description |
|---|---|
| [EncodingId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdatasurrogate/members#encodingid) | Gets the identifier of the encoding of the data structure. |

## Applies to

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