Gerenciador de plug -in simples para asp.net Core v2.2
Apresenta uma maneira simples de desenvolver projetos que funcionem com plugins no ASP.NET Core v2.2
Uso:
Seção 1: Para desenvolver um plug -in, primeiro, precisamos implementar a interface do Imodule do projeto MVCCorepluginManager.
Exemplo:
public class TestPluginModule : IModule
{
public string Title
{
get { return "TestPlugin Index Page"; }
}
public string Name
{
get { return Assembly.GetAssembly(GetType()).GetName().Name; }
}
public Version Version
{
get { return new Version(1, 0, 0, 0); }
}
public string EntryControllerName
{
get { return "TestPlugin"; }
}
}
A parte mais importante nessa interface é o nome de entrada. Estamos especificando o controlador principal para este plug -in. Este é o ponto de entrada do plugin. Depois de criar este controlador, você pode definir o que quiser. Ele será executado como de dentro do projeto principal.
O Core V2.x compila as visualizações, você receberá duas DLLs. Se você não tiver nenhuma visão, terá apenas um.
Seção 2:
Agora, temos que adicionar este código ao projeto principal para incluir o Plugin Manager:
[Assembléia: HostingStartup (tipoof (pluginManagerHostingStartup))]
Simplesmente, podemos adicionar dentro do programa.cs ou startup.cs
Além disso, temos que mudar nosso programa.cs um pouco assim:
public static async Task Main(string[] args)
{
await ApplicationManager.RunAsync(CreateWebHostBuilder, args);
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Estamos fazendo isso porque, depois que cada plug -in adicionado ou removido, o aplicativo deve ser reiniciado. Com este código, ele reinicia automaticamente.
Se não alterarmos o código como esse, após qualquer processo de alteração do plug -in, o aplicativo para e quando fizermos alguma solicitação, veremos uma página de erro.
Seção 3:
Agora, é hora de usar o plug -in em qualquer página.
Para fazer isso, solicitamos o plug -in com seu nome no bloco de código do View e depois adicionando o bloco HTML
@{
var testPluginModule = PluginManager.GetModule("Plugins.TestPlugin"); // Your plugin assembly name without extension.
}
@if (testPluginModule != null)
{
@Html.ActionLink(testPluginModule.Title, "Index", testPluginModule.EntryControllerName)
}
No código, tudo o que precisamos fazer são estes.
Seção 4:
Finalmente, podemos adicionar ou remover plugins. Só você precisa fazer, adicionando montagens na pasta Plugins ou removendo dela. A pasta Plugins está na raiz do projeto.
Além disso, se você quiser, pode adicionar plugins em suas próprias pastas. De dessa maneira, seu código pode ser mais organizado ...
Lembre -se de dar permissão de gravação para a pasta Plugins!
Além disso, você pode olhar para o exemplo em https://test3.bilalafsar.com