# API Changes in v2.19

> Reference: API changes of Opc.UaFx.Advanced in v2.19: 36 added, 1 removed, 10 changed, 0 obsoleted.

<dl class="api-definition">
<dt>Releases</dt>
<dd>v2.19.0, v2.19.1, v2.19.2</dd>
<dt>Compared with</dt>
<dd>v2.18.5</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced</dd>
</dl>

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [IOpcNodeInfo.Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/members#child-opc-uafx-opcnamepath) | `IOpcNodeInfo Child(OpcNamePath namePath)` |
| [OpcEvent.GetValue&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcevent/members#getvalue) | `protected T GetValue<T>(string memberName = "")` |
| [OpcNamePath.GetEnumerator](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamepath/members#getenumerator) | `public IEnumerator<OpcName> GetEnumerator()` |
| [OpcNodeTypeInfo.Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/members#child-opc-uafx-opcnamepath) | `public IOpcNodeInfo Child(OpcNamePath namePath)` |

### Opc.UaFx.Client

| Symbol | Signature |
|---|---|
| [OpcClient.GetType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/gettype#gettype-opc-uafx-opcname) | `public IOpcType GetType(OpcName name)` |
| [OpcClient.GetType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/gettype#gettype-opc-uafx-opcnodeid) | `public IOpcType GetType(OpcNodeId typeId)` |
| [OpcClient.GetType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/gettype#gettype-system-string) | `public IOpcType GetType(string name)` |
| [OpcClient.GetType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/gettype#gettype-system-type) | `public IOpcType GetType(Type underlyingType)` |
| [OpcClient.GetTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/gettypes) | `public IOpcType[] GetTypes()` |
| [OpcClient.IsSubtypeOf](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/issubtypeof) | `public bool IsSubtypeOf(OpcNodeId subtypeId, OpcNodeId typeId)` |
| [OpcNodeInfo.Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#child-opc-uafx-opcname) | `public OpcNodeInfo Child(OpcName name)` |
| [OpcNodeInfo.Child](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcnodeinfo/members#child-opc-uafx-opcnamepath) | `public OpcNodeInfo Child(OpcNamePath namePath)` |

### Opc.UaFx.Server

| Symbol | Signature |
|---|---|
| [OpcServer.OnRequestJudgement](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserver/members#onrequestjudgement) | `protected virtual void OnRequestJudgement(OpcRequestJudgementEventArgs e)` |
| [OpcServer.RequestJudgement](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserver/members#requestjudgement) | `public event OpcRequestJudgementEventHandler RequestJudgement` |

### Opc.UaFx.Services

| Symbol | Signature |
|---|---|
| [OpcAddNodesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcaddnodesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcAddReferencesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcaddreferencesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcBrowseNextResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcbrowsenextresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcBrowseResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcbrowseresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcCallMethodsResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opccallmethodsresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcDeleteNodesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcdeletenodesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcDeleteReferencesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcdeletereferencesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcReadNodesHistoryResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcreadnodeshistoryresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcReadNodesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcreadnodesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcRegisterNodesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcregisternodesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcRequestImpeachment](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcrequestimpeachment/)<span class="api-meta">2 members</span> | `public enum OpcRequestImpeachment` |
| [OpcRequestJudgementEventArgs](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcrequestjudgementeventargs/)<span class="api-meta">6 members</span> | `public class OpcRequestJudgementEventArgs : EventArgs` |
| [OpcRequestJudgementEventHandler](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcrequestjudgementeventhandler/) | `public delegate void OpcRequestJudgementEventHandler(object sender, OpcRequestJudgementEventArgs e)` |
| [OpcServiceRequest.ServiceName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcservicerequest/members#servicename) | `public string ServiceName { get; }` |
| [OpcServiceResponse.Exception](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcserviceresponse/members#exception) | `public OpcException Exception { get; }` |
| [OpcServiceResponse.GetResultExceptions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcserviceresponse/members#getresultexceptions) | `public IEnumerable<OpcException> GetResultExceptions()` |
| [OpcServiceResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcserviceresponse/members#getresults) | `public abstract IEnumerable<OpcResult> GetResults()` |
| [OpcServiceResponse.ServiceName](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcserviceresponse/members#servicename) | `public string ServiceName { get; }` |
| [OpcTranslatePathsResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opctranslatepathsresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcUnregisterNodesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcunregisternodesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcUpdateNodesHistoryResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcupdatenodeshistoryresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |
| [OpcWriteNodesResponse.GetResults](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcwritenodesresponse/members#getresults) | `public override IEnumerable<OpcResult> GetResults()` |

## Removed

### Opc.UaFx.Client

| Symbol | Signature |
|---|---|
| OpcClient.BrowseNodeIds | `public IEnumerable<OpcNodeId> BrowseNodeIds(BrowsePathCollection pathsToTranslate)` |

## Changed

### Opc.UaFx

| Symbol | Signature (old, new) |
|---|---|
| [IOpcReadOnlyNodeDataStore](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcreadonlynodedatastore/) | `public interface IOpcReadOnlyNodeDataStore`<br>`public interface IOpcReadOnlyNodeDataStore : IOpcNamespaceResolver` |
| [OpcEventNodeSnapshot](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnodesnapshot/) | `public class OpcEventNodeSnapshot : OpcInstanceNodeSnapshot, IOpcReadOnlyNodeDataStore`<br>`public class OpcEventNodeSnapshot : OpcInstanceNodeSnapshot, IOpcReadOnlyNodeDataStore, IOpcNamespaceResolver` |
| [OpcEventNodeView](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnodeview/) | `public class OpcEventNodeView : IOpcReadOnlyNodeDataStore`<br>`public class OpcEventNodeView : IOpcReadOnlyNodeDataStore, IOpcNamespaceResolver` |
| [OpcFileReadMethodNode.FileReadCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfilereadmethodnode.filereadcallback/) | `[CLSCompliant(false)] public delegate byte[] OpcFileReadMethodNode.FileReadCallback(uint fileHandle, int length)`<br>`[CLSCompliant(false)] public delegate ByteString OpcFileReadMethodNode.FileReadCallback(uint fileHandle, int length)` |
| [OpcFileReadMethodNode.FileReadExCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfilereadmethodnode.filereadexcallback/) | `[CLSCompliant(false)] public delegate byte[] OpcFileReadMethodNode.FileReadExCallback(OpcMethodContext context, uint fileHandle, int length)`<br>`[CLSCompliant(false)] public delegate ByteString OpcFileReadMethodNode.FileReadExCallback(OpcMethodContext context, uint fileHandle, int length)` |
| [OpcFileWriteMethodNode.FileWriteCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfilewritemethodnode.filewritecallback/) | `[CLSCompliant(false)] public delegate void OpcFileWriteMethodNode.FileWriteCallback(uint fileHandle, byte[] data)`<br>`[CLSCompliant(false)] public delegate void OpcFileWriteMethodNode.FileWriteCallback(uint fileHandle, ByteString data)` |
| [OpcFileWriteMethodNode.FileWriteExCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfilewritemethodnode.filewriteexcallback/) | `[CLSCompliant(false)] public delegate void OpcFileWriteMethodNode.FileWriteExCallback(OpcMethodContext context, uint fileHandle, byte[] data)`<br>`[CLSCompliant(false)] public delegate void OpcFileWriteMethodNode.FileWriteExCallback(OpcMethodContext context, uint fileHandle, ByteString data)` |
| [OpcFilterOperand.OfType](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfilteroperand/members#oftype-opc-uafx-opcnodeid) | `public static OpcContentFilterElement OfType(object value)`<br>`public static OpcContentFilterElement OfType(OpcNodeId typeId)` |
| [OpcInstanceNodeSnapshot](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenodesnapshot/) | `public class OpcInstanceNodeSnapshot : IOpcReadOnlyNodeDataStore`<br>`public class OpcInstanceNodeSnapshot : IOpcReadOnlyNodeDataStore, IOpcNamespaceResolver` |
| [OpcNamePath](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnamepath/) | `public class OpcNamePath : IEquatable<OpcNamePath>, IComparable, IComparable<OpcNamePath>`<br>`public class OpcNamePath : IEnumerable<OpcName>, IEnumerable, IEquatable<OpcNamePath>, IComparable, IComparable<OpcNamePath>` |
