# API Changes in v2.17

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

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

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [ByteString](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.bytestring/)<span class="api-meta">20 members</span> | `[OpcDataType(15)] public struct ByteString : IEnumerable, IComparable, IComparable<ByteString>, IEquatable<ByteString>` |
| [OpcFileInfo.OpenCore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfileinfo/members#opencore) | `protected virtual Stream OpenCore(FileMode fileMode, FileAccess fileAccess, FileShare fileShare)` |

## Changed

### Opc.UaFx

| Symbol | Signature (old, new) |
|---|---|
| [OpcFileInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfileinfo/) | `public sealed class OpcFileInfo : IOpcFileInfo`<br>`public class OpcFileInfo : IOpcFileInfo` |
| [OpcFileInfo.IsReadOnly](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfileinfo/members#isreadonly) | `public bool IsReadOnly { get; }`<br>`public virtual bool IsReadOnly { get; }` |
| [OpcFileInfo.Open](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfileinfo/members#open) | `public Stream Open(OpcFileMode mode)`<br>`public virtual Stream Open(OpcFileMode mode)` |
