# API Changes in v2.40

> Reference: API changes of Opc.UaFx.Advanced in v2.40: 9 added, 3 removed, 2 changed, 0 obsoleted.

<dl class="api-definition">
<dt>Release</dt>
<dd>v2.40.0</dd>
<dt>Compared with</dt>
<dd>v2.33.0</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced</dd>
</dl>

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [ExtensionObjectExtensions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.extensionobjectextensions/)<span class="api-meta">1 member</span> | `public static class ExtensionObjectExtensions` |
| [OpcContext.Enter](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/members#enter-system-collections-generic-ienumerable-of-opc-uafx-opcnamespace) | `public static OpcContext.Local Enter(IEnumerable<OpcNamespace> namespaces)` |
| [OpcContext.Enter](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext/members#enter-opc-uafx-opcnamespace-array) | `public static OpcContext.Local Enter(params OpcNamespace[] namespaces)` |
| [OpcContext.Local](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontext.local/)<span class="api-meta">1 member</span> | `public sealed class OpcContext.Local : OpcContext, IOpcNamespaceResolver, IDisposable` |
| [OpcData.Decode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdata/members#decode-t1-opc-uafx-opccontext-system-byte-array) | `public static T Decode<T>(OpcContext context, byte[] buffer) where T : new()` |
| [OpcData.Decode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdata/members#decode-t1-opc-uafx-opccontext-system-io-stream) | `public static T Decode<T>(OpcContext context, Stream stream) where T : new()` |
| [OpcData.ToExtension](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcdata/members#toextension) | `public static ExtensionObject ToExtension(object instance)` |
| [OpcNodeSet.Load](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/members#load-system-string-opc-uafx-opcnodesetloadoptions) | `public static OpcNodeSet Load(string filePath, OpcNodeSetLoadOptions options)` |
| [OpcNodeSetLoadOptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodesetloadoptions/)<span class="api-meta">2 members</span> | `[Flags] public enum OpcNodeSetLoadOptions` |

## Removed

### Opc.UaFx

| Symbol | Signature |
|---|---|
| OpcModellingRule.MandatoryShared | `MandatoryShared = 3` |
| OpcModellingRules.MandatorySharedId | `public static readonly OpcNodeId MandatorySharedId` |
| OpcObjectTypes.OpcModellingRule.MandatoryShared | `public OpcNodeId MandatoryShared { get; }` |

## Changed

### Opc.UaFx

| Symbol | Signature (old, new) |
|---|---|
| [OpcModellingRule.MandatoryPlaceholder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmodellingrule/#mandatoryplaceholder) | `MandatoryPlaceholder = 5`<br>`MandatoryPlaceholder = 4` |
| [OpcModellingRule.OptionalPlaceholder](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmodellingrule/#optionalplaceholder) | `OptionalPlaceholder = 4`<br>`OptionalPlaceholder = 3` |
