01.Abp-Notes:控制台程序
目录
- 控制台程序
- 创建Abp控制台程序
控制台程序
创建Abp控制台程序
-
新建项目
新建一个控制台程序Kawe.Abp.Leaning.ConsoleClient
通过Nuget,添加Volo.Abp
引用 -
创建模块
新建一个类ConsoleClientModule
,使其继承AbpModule
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Modularity;
namespace Kawe.Abp.Leaning.ConsoleClient
{
public class ConsoleClientModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
//在此处注入依赖项
context.Services.AddSingleton();
}
}
}
- IMyService和IMyService
namespace Kawe.Abp.Leaning.ConsoleClient
{
public interface IMyService
{
void Run();
}
}
public class MyService : IMyService
{
public void Run()
{
Console.WriteLine("Hello World!");
}
}
- Main
using System;
using Volo.Abp;
using Microsoft.Extensions.DependencyInjection;
namespace Kawe.Abp.Leaning.ConsoleClient
{
class Program
{
static void Main(string[] args)
{
using (var application = AbpApplicationFactory.Create())
{
application.Initialize();
var myService = application.ServiceProvider.GetService();
myService.Run();
Console.WriteLine("Press ENTER to stop application...");
Console.ReadLine();
application.Shutdown();
}
}
}
}
-
通过Application来加载启动模块
-
通过模块化封装模块本身的行为与依赖
-
Application接替整个应用程序的生命周期、启动、初始化、卸载
-
通过模块化模块内的行为和依赖注入到全局application的DI容器中
-
输出
Hello World!
Press ENTER to stop application...