OPCFoundation.NetStandard.Opc.Ua.Client 2.0.0

Prefix Reserved
dotnet add package OPCFoundation.NetStandard.Opc.Ua.Client --version 2.0.0
                    
NuGet\Install-Package OPCFoundation.NetStandard.Opc.Ua.Client -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Client" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OPCFoundation.NetStandard.Opc.Ua.Client" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add OPCFoundation.NetStandard.Opc.Ua.Client --version 2.0.0
                    
#r "nuget: OPCFoundation.NetStandard.Opc.Ua.Client, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package OPCFoundation.NetStandard.Opc.Ua.Client@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Client&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OPCFoundation.NetStandard.Opc.Ua.Client&version=2.0.0
                    
Install as a Cake Tool

OPC UA .NET Standard — Client

OPCFoundation.NetStandard.Opc.Ua.Client is the high-level OPC UA client library. It contains the Session and ManagedSession implementations, the V2 subscription engine, the central ClientChannelManager (channel sharing + transparent reconnect), the ReverseConnectManager, and the fluent builder.AddClient(...) DI surface.

Overview

Use this package for any application that needs to:

  • open OPC UA sessions to a server (forward or reverse-connect),
  • subscribe to monitored items (with the V2 streaming engine or the classic Session.AddSubscription API),
  • call methods, browse the address space, read / write attributes,
  • transfer subscriptions between sessions,
  • discover endpoints via DiscoveryClient.

Getting started

using Microsoft.Extensions.DependencyInjection;
using Opc.Ua;
using Opc.Ua.Client;

services
    .AddOpcUa()
    .AddClient(opt =>
    {
        opt.ApplicationName = "MyClient";
        opt.ApplicationUri = "urn:localhost:MyClient";
        opt.ProductUri = "uri:example.com:MyClient";
        opt.Session = new ManagedSessionOptions
        {
            Endpoint = endpoint,
        };
    });

// Resolve and connect on first use; the connected ManagedSession is cached:
var sessionFactory =
    provider.GetRequiredService<Func<CancellationToken, Task<ManagedSession>>>();
ManagedSession session = await sessionFactory(ct);

Applications that already own a classic configuration XML file can pass it directly — AddClient("MyClient.Config.xml", ...), or as a Stream for embedded resources — and keep every setting from the file while adopting dependency injection. The document loads on first use; set OpcUaClientOptions.LoadConfigurationOnStart to have the host load and validate it during StartAsync, and read it back through the public OpcUaClientOptions.ConfigurationProvider.

Reverse connect lifecycle

ReverseConnectManager uses an asynchronous, cancellation-aware lifecycle:

await using var manager = new ReverseConnectManager(telemetry);
manager.AddEndpoint(new Uri("opc.tcp://client-host:65300"));
await manager.StartServiceAsync(reverseConnectConfiguration, ct);

ITransportWaitingConnection connection =
    await manager.WaitForConnectionAsync(serverEndpoint, serverUri, ct);

The synchronous StartService, RegisterWaitingConnection, and Dispose methods remain as obsolete compatibility wrappers. New applications should use StartServiceAsync, RegisterWaitingConnectionAsync, and DisposeAsync.

When configured through AddClient(...), a Generic Host starts the singleton manager eagerly through an internal hosted service. Applications using only ServiceCollection get lazy startup from WaitForConnectionAsync or RegisterWaitingConnectionAsync. Register an IReverseConnectConfigurationProvider to asynchronously validate or transform the effective listener configuration before activation.

Target frameworks

net48, net8.0, net9.0, net10.0.

Additional documentation

See the main repository README and the Sessions guide for the session / subscription / channel-manager design, the Reverse Connect guide, and the Transfer Subscription guide.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Framework net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (115)

Showing the top 5 NuGet packages that depend on OPCFoundation.NetStandard.Opc.Ua.Client:

Package Downloads
OPCFoundation.NetStandard.Opc.Ua

This package contains the OPC UA reference implementation and is targeting the .NET Standard Library.

OPCFoundation.NetStandard.Opc.Ua.Gds.Client.Common

OPC UA GDS Client Class Library

OPCFoundation.NetStandard.Opc.Ua.Client.ComplexTypes

OPC UA Complex Types Client Class Library

Softing.Opc.Ua.Client

This package contains the OPC UA .NET Standard SDK Client Library from Softing. It is an easy to use API built on top of the OPC UA .NET Standard Stack from OPC Foundation.

ThingsGateway.Plugin.OpcUa

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.0 964 10/7/2026
2.0.0-preview.6 551 9/30/2026 2.0.0-preview.6 is deprecated because it is no longer maintained.
2.0.0-preview.5 1,682 9/17/2026 2.0.0-preview.5 is deprecated because it is no longer maintained.
2.0.0-preview.4 1,637 9/2/2026 2.0.0-preview.4 is deprecated because it is no longer maintained.
2.0.0-preview.3 2,419 8/28/2026 2.0.0-preview.3 is deprecated because it is no longer maintained.
2.0.0-preview.2 1,083 8/24/2026 2.0.0-preview.2 is deprecated because it is no longer maintained.
1.5.378.182 2,912 10/4/2026
1.5.378.176 36,288 9/11/2026 1.5.378.176 is deprecated because it is no longer maintained.
1.5.378.156 121,806 7/10/2026 1.5.378.156 is deprecated because it is no longer maintained.
1.5.378.152 33,799 6/25/2026 1.5.378.152 is deprecated because it is no longer maintained.
1.5.378.145 97,070 5/21/2026 1.5.378.145 is deprecated because it is no longer maintained.
1.5.378.134 107,438 3/26/2026 1.5.378.134 is deprecated because it is no longer maintained.
1.5.378.106 182,440 1/28/2026 1.5.378.106 is deprecated because it is no longer maintained.
1.5.378.65 63,117 12/18/2025 1.5.378.65 is deprecated because it is no longer maintained.
1.5.378.10-preview 1,445 11/18/2025 1.5.378.10-preview is deprecated because it is no longer maintained.
1.5.377.22 212,272 11/14/2025 1.5.377.22 is deprecated because it is no longer maintained.
1.5.377.21 235,370 9/22/2025 1.5.377.21 is deprecated because it is no longer maintained.
1.5.377.11-preview 1,135 9/4/2025 1.5.377.11-preview is deprecated because it is no longer maintained.
1.5.376.244 166,560 7/31/2025 1.5.376.244 is deprecated because it is no longer maintained.
1.5.376.235 136,308 6/26/2025 1.5.376.235 is deprecated because it is no longer maintained.
Loading failed