Dependency Injection
TorBoxSDK integrates with IServiceCollection through AddTorBox.
Registration model
AddTorBox(...) registers:
- named
HttpClientpipelines for Main, Search, and Relay - options binding for TorBoxClientOptions
- one public entry point: ITorBoxClient
Sub-clients are internal implementation details and are not registered individually.
Correct consumption
services.AddTorBox(options =>
{
options.ApiKey = Environment.GetEnvironmentVariable("TORBOX_API_KEY")
?? throw new InvalidOperationException("Missing TorBox API key.");
});
using ServiceProvider provider = services.BuildServiceProvider();
ITorBoxClient client = provider.GetRequiredService<ITorBoxClient>();
Standalone mode
For non-DI environments, instantiate TorBoxClient directly:
using TorBoxClient client = new("your-api-key");
Lifetime and disposal
- In DI mode, the container controls
HttpClientlifetime. - In standalone mode, dispose
TorBoxClientwithusing.