OpcUaXE.Client 1.0.0

dotnet add package OpcUaXE.Client --version 1.0.0
                    
NuGet\Install-Package OpcUaXE.Client -Version 1.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="OpcUaXE.Client" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="OpcUaXE.Client" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="OpcUaXE.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 OpcUaXE.Client --version 1.0.0
                    
#r "nuget: OpcUaXE.Client, 1.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 OpcUaXE.Client@1.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=OpcUaXE.Client&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=OpcUaXE.Client&version=1.0.0
                    
Install as a Cake Tool

OpcUaXE.Client

.NET OPC UA client library with clean high-level API. No OPC UA SDK types in the public surface.

Targets: .NET 8 / .NET 10

Features

  • Connect by IP/port or endpoint (auto-discovery, security-level selection)
  • Service mode with keep-alive and auto-reconnect
  • Browse, Read, Write (single & batch, type coercion)
  • Subscriptions (monitored items with configurable intervals)
  • Alarms & Conditions (mapped event data, no SDK types)
  • Certificate validation via events

Quick Start

using OpcUaXE.Client;

await using var client = new XeClient();

client.StateChanged += (_, s) => Console.WriteLine($"State: {s}");
client.CertificateValidationRequested += (_, e) => e.AcceptPermanently = true;

await client.ConnectAsync("192.168.1.100", 4840, new XeClientOptions
{
    ClientName = "MyApp"
});

// Read
var result = await client.ReadValueAsync("ns=2;s=MyVariable");
Console.WriteLine($"{result.Address}: {result.Value}");

// Write
await client.WriteValueAsync("ns=2;s=MyVariable", 42);

// Browse
var children = await client.BrowseAsync("i=84");

await client.DisconnectAsync();

Service Mode (Auto-Reconnect)

await using var client = new XeClient();

client.MonitoredItemValuesReceived += (_, items) =>
{
    foreach (var item in items) Console.WriteLine(item);
};

await client.StartServiceAsync("192.168.1.100", options: new XeClientOptions
{
    AutoReconnectDelay = TimeSpan.FromSeconds(5)
});

client.AddMonitoredItem("ns=2;s=MyVariable", samplingInterval: 100, publishInterval: 1000);

Console.ReadKey();
await client.StopServiceAsync();

XeClientOptions

Property Default Description
ClientName "OpcUaXEClient" Session name
UserName / Password "" Credentials (empty = anonymous)
KeepAliveTimeout 30s Keep-alive watchdog (Zero = off)
AutoReconnectDelay 5s Reconnect delay in service mode (Zero = off)
AlarmsAndConditionsEnable true Enable A&C subscription
AlarmsAndConditionsNodeId "i=2253" Event-notifier node
PreferredLocales null BCP-47 locales, e.g. ["de", "en-US"]

Events

Event Description
ServiceMessage Informational messages
ServiceException Internal exceptions
StateChanged Connection state changes
CertificateValidationRequested Accept/reject server certificate
KeepAliveReceived Keep-alive tick
MonitoredItemValuesReceived New values for monitored items
AlarmAndConditionEventReceived A&C event data

License

See LICENSE.

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 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 114 4/13/2026