Skip to content

s-limo/Plugins

Repository files navigation

Travis CI: Build Status

AppVeyor: Build status

.NET Core plugins framework

Features

  • Use any type as base for plugins
  • Supports multipe plugin groups (base types)
  • Use DI to create plugins

Quick Start

Update appsettings.json with Plugins:Path key pointing to the plugins folder:

{
  "Plugins": {
    "Path": "/../Extensions"
  }
}

Configure services by adding services.AddPlugins();

public void ConfigureServices(IServiceCollection services)
{

  services.AddSingleton<IConfiguration>(configuration);
  services.AddPlugins();
}

Work with plugins:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider services)
{
  ...
  app.Run(async (context) =>
  {
    var count = manager.Plugins.Count;
    var plugins = string.Join(Environment.NewLine, manager.Plugins.Select(p => p.ToString()));
    await context.Response.WriteAsync($"Hello {count} Plugins:{Environment.NewLine}{plugins}");
  });
}

Contributing code

About

.NET Core plugins framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages