# API Changes in v2.12

> Reference: API changes of Opc.UaFx.Advanced in v2.12: 34 added, 2 removed, 4 changed, 0 obsoleted.

<dl class="api-definition">
<dt>Releases</dt>
<dd>v2.12.0, v2.12.1, v2.12.2, v2.12.3</dd>
<dt>Compared with</dt>
<dd>v2.11.5</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced</dd>
</dl>

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [IOpcApplicationInstance.Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcapplicationinstance/members#namespaces) | `OpcReadOnlyNamespaceCollection Namespaces { get; }` |
| [IOpcNamespaceResolver.Resolve](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnamespaceresolver/members#resolve) | `OpcNamespace Resolve(OpcNamespace source)` |
| [OpcApplicationInstance&lt;TTransport, TSecurity&gt;.Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcapplicationinstance-2/members#namespaces) | `public abstract OpcReadOnlyNamespaceCollection Namespaces { get; }` |
| [OpcArgument.Descriptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcargument/members#descriptions) | `public OpcArgumentGlobalization Descriptions { get; }` |
| [OpcArgumentGlobalization](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcargumentglobalization/)<span class="api-meta">9 members</span> | `public class OpcArgumentGlobalization` |
| [OpcContext.Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/members#namespaces) | `public OpcReadOnlyNamespaceCollection Namespaces { get; }` |
| [OpcEncodingOptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcencodingoptions/)<span class="api-meta">3 members</span> | `public class OpcEncodingOptions` |
| [OpcNamespace.Scope](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespace/members#scope) | `public OpcNamespaceScope Scope { get; }` |
| [OpcNamespaceCollection.ClearItems](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#clearitems) | `protected override void ClearItems()` |
| [OpcNamespaceCollection.Dispose](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#dispose-noparams) | `public void Dispose()` |
| [OpcNamespaceCollection.Dispose](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#dispose-system-boolean) | `protected virtual void Dispose(bool disposing)` |
| [OpcNamespaceCollection.InsertItem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#insertitem) | `protected override void InsertItem(int index, OpcNamespace item)` |
| [OpcNamespaceCollection.RemoveItem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#removeitem) | `protected override void RemoveItem(int index)` |
| [OpcNamespaceCollection.Resolve](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#resolve) | `public OpcNamespace Resolve(OpcNamespace source)` |
| [OpcNamespaceCollection.ResolveIndex](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#resolveindex) | `public int ResolveIndex(string namespaceValue)` |
| [OpcNamespaceCollection.ResolveValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#resolvevalue) | `public string ResolveValue(int namespaceIndex)` |
| [OpcNamespaceCollection.SetItem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/members#setitem) | `protected override void SetItem(int index, OpcNamespace item)` |
| [OpcNamespaceScope](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacescope/)<span class="api-meta">3 members</span> | `public enum OpcNamespaceScope` |
| [OpcNode.Descriptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#descriptions) | `public OpcNodeGlobalization Descriptions { get; }` |
| [OpcNode.DisplayNames](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#displaynames) | `public OpcNodeGlobalization DisplayNames { get; }` |
| [OpcNodeExportOptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeexportoptions/)<span class="api-meta">7 members</span> | `public class OpcNodeExportOptions` |
| [OpcNodeGlobalization](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeglobalization/)<span class="api-meta">9 members</span> | `public class OpcNodeGlobalization` |
| [OpcNodeParental](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeparental/)<span class="api-meta">3 members</span> | `[Flags] public enum OpcNodeParental` |
| [OpcNodeReferenceExportOptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodereferenceexportoptions/)<span class="api-meta">4 members</span> | `public class OpcNodeReferenceExportOptions` |
| [OpcReadOnlyNamespaceCollection.Resolve](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadonlynamespacecollection/members#resolve) | `public OpcNamespace Resolve(OpcNamespace source)` |
| [OpcReadOnlyNamespaceCollection.ResolveIndex](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadonlynamespacecollection/members#resolveindex) | `public int ResolveIndex(string namespaceValue)` |
| [OpcReadOnlyNamespaceCollection.ResolveValue](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadonlynamespacecollection/members#resolvevalue) | `public string ResolveValue(int namespaceIndex)` |

### Opc.UaFx.Classic

| Symbol | Signature |
|---|---|
| [OpcClassicApplicationDescription.HostIdentity](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.classic.opcclassicapplicationdescription/members#hostidentity) | `public OpcClassicIdentity HostIdentity { get; set; }` |
| [OpcClassicIdentity](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.classic.opcclassicidentity/)<span class="api-meta">4 members</span> | `public class OpcClassicIdentity : OpcIdentity` |

### Opc.UaFx.Client

| Symbol | Signature |
|---|---|
| [OpcClient.Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/namespaces) | `public override OpcReadOnlyNamespaceCollection Namespaces { get; }` |

### Opc.UaFx.Client.Classic

| Symbol | Signature |
|---|---|
| [OpcClassicDiscoveryClient.HostIdentity](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.classic.opcclassicdiscoveryclient/members#hostidentity) | `public OpcClassicIdentity HostIdentity { get; }` |
| [OpcClassicDiscoveryClient](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.classic.opcclassicdiscoveryclient/members#opcclassicdiscoveryclient-system-string-opc-uafx-classic-opcclassicidentity) | `public OpcClassicDiscoveryClient(string host, OpcClassicIdentity hostIdentity)` |

### Opc.UaFx.Server

| Symbol | Signature |
|---|---|
| [OpcNodeManager.ExportNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#exportnodes-opc-uafx-opcnodeexportoptions) | `public IEnumerable<OpcNodeSet> ExportNodes(OpcNodeExportOptions options)` |
| [OpcServerBase.Namespaces](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserverbase/members#namespaces) | `public override OpcReadOnlyNamespaceCollection Namespaces { get; }` |

## Removed

### Opc.UaFx

| Symbol | Signature |
|---|---|
| IOpcNamespaceResolver.Resolve | `Uri Resolve(int namespaceIndex)` |
| IOpcNamespaceResolver.Resolve | `int Resolve(Uri namespaceUri)` |

## Changed

### Opc.UaFx

| Symbol | Signature (old, new) |
|---|---|
| [OpcNamespaceCollection](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamespacecollection/) | `public class OpcNamespaceCollection : Collection<OpcNamespace>, IList<OpcNamespace>, ICollection<OpcNamespace>, IReadOnlyList<OpcNamespace>, IReadOnlyCollection<OpcNamespace>, IEnumerable<OpcNamespace>, IList, ICollection, IEnumerable`<br>`public class OpcNamespaceCollection : Collection<OpcNamespace>, IList<OpcNamespace>, ICollection<OpcNamespace>, IReadOnlyList<OpcNamespace>, IReadOnlyCollection<OpcNamespace>, IEnumerable<OpcNamespace>, IList, ICollection, IEnumerable, IDisposable, IOpcNamespaceResolver` |
| [OpcReadOnlyNamespaceCollection](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadonlynamespacecollection/) | `public class OpcReadOnlyNamespaceCollection : ReadOnlyCollection<OpcNamespace>, IList<OpcNamespace>, ICollection<OpcNamespace>, IReadOnlyList<OpcNamespace>, IReadOnlyCollection<OpcNamespace>, IEnumerable<OpcNamespace>, IList, ICollection, IEnumerable`<br>`public class OpcReadOnlyNamespaceCollection : ReadOnlyCollection<OpcNamespace>, IList<OpcNamespace>, ICollection<OpcNamespace>, IReadOnlyList<OpcNamespace>, IReadOnlyCollection<OpcNamespace>, IEnumerable<OpcNamespace>, IList, ICollection, IEnumerable, IOpcNamespaceResolver` |

### Opc.UaFx.Server

| Symbol | Signature (old, new) |
|---|---|
| [OpcDiscoveryServer](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcdiscoveryserver/) | `public class OpcDiscoveryServer : OpcServerBase, IDisposable, IOpcApplicationInstance`<br>`public class OpcDiscoveryServer : OpcServerBase, IDisposable, IOpcApplicationInstance, IOpcNamespaceResolver` |
| [OpcServerBase](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserverbase/) | `public abstract class OpcServerBase : OpcApplicationInstance<OpcTransport, OpcServerSecurity>, IDisposable, IOpcApplicationInstance`<br>`public abstract class OpcServerBase : OpcApplicationInstance<OpcTransport, OpcServerSecurity>, IDisposable, IOpcApplicationInstance, IOpcNamespaceResolver` |
