LazyApiPack.Plugin
0.1.0
dotnet add package LazyApiPack.Plugin --version 0.1.0
NuGet\Install-Package LazyApiPack.Plugin -Version 0.1.0
<PackageReference Include="LazyApiPack.Plugin" Version="0.1.0" />
paket add LazyApiPack.Plugin --version 0.1.0
#r "nuget: LazyApiPack.Plugin, 0.1.0"
// Install LazyApiPack.Plugin as a Cake Addin #addin nuget:?package=LazyApiPack.Plugin&version=0.1.0 // Install LazyApiPack.Plugin as a Cake Tool #tool nuget:?package=LazyApiPack.Plugin&version=0.1.0
About this project
This library enables you to build plugins and load them into your application with a handy service.
Building a plugin
To build a plugin, create a project for your plugin and a project with the plugin interface.
Code in Common.dll
public interface IPlugin {
string Foo();
}
Code in Plugin.dll
public class Plugin1 : IPlugin {
public string Foo() {
return "Hello from Plugin 1";
}
}
Code in Application.exe
var service = new PluginService<IPlugin>();
service.LoadPlugins("PathToPlugins", "*Plugin*.dll", X509Certificate2.CreateFromCertFile("PathToCerFileWithoutPrivateKey")));
foreach (var plugin in service.LoadedPlugins) {
Debug.WriteLine(plugin.Foo());
}
Security checks
If you specify a public certificate, the plugins will be checked if they are signed by the same certificate. If you pass NULL, the signature is not checked and the plugin is loaded anyway.
Search Pattern
If you don't specify a search pattern, all dll files are checked for plugins in the given directory.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
-
net6.0
- LazyApiPack.Plugin.Interfaces (>= 1.0.0)
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 |
---|---|---|
0.1.0 | 138 | 1/29/2024 |
Basic implementation