ExperimentFramework.Plugins
0.23.0
dotnet add package ExperimentFramework.Plugins --version 0.23.0
NuGet\Install-Package ExperimentFramework.Plugins -Version 0.23.0
<PackageReference Include="ExperimentFramework.Plugins" Version="0.23.0" />
<PackageVersion Include="ExperimentFramework.Plugins" Version="0.23.0" />
<PackageReference Include="ExperimentFramework.Plugins" />
paket add ExperimentFramework.Plugins --version 0.23.0
#r "nuget: ExperimentFramework.Plugins, 0.23.0"
#:package ExperimentFramework.Plugins@0.23.0
#addin nuget:?package=ExperimentFramework.Plugins&version=0.23.0
#tool nuget:?package=ExperimentFramework.Plugins&version=0.23.0
ExperimentFramework.Plugins
Dynamic assembly loading and plugin system for ExperimentFramework. Enables runtime loading of experimental implementations from external DLLs with configurable isolation modes.
Installation
dotnet add package ExperimentFramework.Plugins
Quick Start
1. Register the plugin system
builder.Services.AddExperimentFrameworkPlugins(options =>
{
options.PluginDirectory = "./plugins";
options.IsolationMode = PluginIsolationMode.Isolated;
});
2. Load plugins at runtime
Plugins are discovered automatically from the configured directory. Each plugin assembly is scanned for experiment implementations that match registered service types.
3. Hot reload (optional)
builder.Services.AddExperimentFrameworkPlugins(options =>
{
options.PluginDirectory = "./plugins";
options.EnableHotReload = true;
});
Features
- Runtime loading - Load experiment implementations from external DLLs without recompilation
- Isolation modes - Configure assembly load context isolation per plugin
- Hot reload - Watch plugin directories and reload assemblies on change
- Plugin manifests - Declarative metadata for plugin discovery and validation
- Security - Optional signature verification and sandboxing for untrusted plugins
- DI integration - Seamless integration with
Microsoft.Extensions.DependencyInjection
Isolation Modes
| Mode | Description |
|---|---|
Shared |
Plugin runs in the default load context (no isolation) |
Isolated |
Plugin runs in its own AssemblyLoadContext (default) |
Collectible |
Isolated context that supports unloading for hot reload |
Plugin Manifest
Plugins can include a manifest file for metadata and dependency declarations:
{
"id": "my-plugin",
"version": "1.0.0",
"assembly": "MyPlugin.dll",
"experiments": [
{
"serviceType": "IMyService",
"implementationType": "MyPlugin.MyServiceImpl"
}
]
}
Documentation
See the full documentation for advanced configuration, security options, and plugin authoring guides.
| Product | Versions 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. |
-
net10.0
- ExperimentFramework (>= 0.23.0)
- ExperimentFramework.Configuration (>= 0.23.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Options (>= 10.0.1)
-
net8.0
- ExperimentFramework (>= 0.23.0)
- ExperimentFramework.Configuration (>= 0.23.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Options (>= 10.0.1)
-
net9.0
- ExperimentFramework (>= 0.23.0)
- ExperimentFramework.Configuration (>= 0.23.0)
- Microsoft.Extensions.FileProviders.Physical (>= 10.0.1)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.1)
- Microsoft.Extensions.Options (>= 10.0.1)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on ExperimentFramework.Plugins:
| Package | Downloads |
|---|---|
|
ExperimentFramework.PluginHostSample
Package Description |
|
|
ExperimentFramework.SamplePlugin
Package Description |
|
|
AspireDemo.Blog.Plugins.Auth
Package Description |
|
|
AspireDemo.Blog.Plugins.Data
Package Description |
|
|
AspireDemo.Blog.Plugins.Syndication
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.23.0 | 84 | 6/2/2026 |
| 0.22.17 | 144 | 5/28/2026 |
| 0.22.16 | 151 | 4/24/2026 |
| 0.22.15 | 140 | 4/24/2026 |
| 0.22.14 | 138 | 4/24/2026 |
| 0.22.13 | 141 | 4/24/2026 |
| 0.22.12 | 144 | 4/24/2026 |
| 0.22.11 | 150 | 4/24/2026 |
| 0.22.10 | 137 | 4/23/2026 |
| 0.22.9 | 141 | 4/23/2026 |
| 0.22.8 | 137 | 4/22/2026 |
| 0.22.7 | 157 | 4/22/2026 |
| 0.22.6 | 135 | 4/22/2026 |
| 0.22.5 | 192 | 4/22/2026 |