Connection Methods
The Eriksson Beam API provides several ways to connect to Eriksson Beam, each suited to different use cases. This guide helps you choose the right approach.
Overview
| Class | Use Case | Manages Process |
|---|---|---|
| ErikssonBeamLauncher | Start fresh instance with specific files | Yes |
| ErikssonBeamFinder | Find and connect to any running instance | No |
| ErikssonBeamClient | Connect to specific process by ID | No |
| ErikssonBeamFileManager | Batch file operations with auto-relaunch | Yes |
Decision Guide
| Scenario | Use This Class |
|---|---|
| Launch Eriksson Beam for batch file processing | ErikssonBeamFileManager |
| Launch Eriksson Beam for single/few files | ErikssonBeamLauncher |
| Connect to running instance (known Process ID) | ErikssonBeamClient.AttemptConnection |
| Connect to running instance (unknown Process ID) | ErikssonBeamFinder |
Quick Comparison
ErikssonBeamLauncher
Best for: Starting automation from scratch, guaranteed clean state.
var args = new ErikssonBeamLauncherArgs
{
LicenseKey = licenseKey,
ExecutablePath = @"C:\...\ErikssonBeam.exe",
FilesToOpen = new[] { @"C:\Projects\beam.ebf" },
CloseErikssonBeamOnClientDisconnect = true
};
using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);
var client = launcher.Client;
ErikssonBeamFinder
Best for: Connecting to user-launched Eriksson Beam instance.
var args = new ErikssonBeamConnectionAttemptArgs
{
LicenseKey = licenseKey
};
var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args);
// or
var client = await ErikssonBeamFinder.GetFirstClientWithFile("project.ebf", args);
ErikssonBeamClient
Best for: Connecting to a specific known process.
var args = new ErikssonBeamConnectionAttemptArgs
{
LicenseKey = licenseKey,
ProcessID = 12345 // Known process ID
};
var client = await ErikssonBeamClient.AttemptConnection(args);
ErikssonBeamFileManager
Best for: Processing many files with automatic handling of Eriksson Beam lifecycle.
var args = new ErikssonBeamLauncherArgs
{
LicenseKey = licenseKey,
ExecutablePath = @"C:\...\ErikssonBeam.exe"
};
using var fileManager = await ErikssonBeamFileManager.Initialize(args);
await fileManager.OpenFiles(new[] { "file1.ebf", "file2.ebf" });
var client = fileManager.Launcher.Client;
Important Notes
10-Minute Idle Timeout
Eriksson Beam only listens for API connections for 10 minutes after launch. This timeout:
- Is not reset by manually interacting with the UI
- Requires restarting Eriksson Beam to reset
If connections fail, restart Eriksson Beam and try again.
Disposal
Always dispose of connection objects properly:
// Using statement (recommended)
using var launcher = await ErikssonBeamLauncher.LaunchErikssonBeam(args);
// Or explicit disposal
var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args);
try
{
// Work with client...
}
finally
{
client.Dispose();
}
Launcher vs Client Disposal
- ErikssonBeamLauncher.Dispose(): Closes client AND optionally closes Eriksson Beam
- ErikssonBeamClient.Dispose(): Only closes the client connection
Next Steps
- ErikssonBeamLauncher - Launch fresh instances
- ErikssonBeamFinder - Discover running instances
- ErikssonBeamClient - Direct connection details
- ErikssonBeamFileManager - Batch file operations