01.Abp-Notes:控制台程序 控制台程序

创建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,MyService>();
        }
    }
}
  • 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<ConsoleClientModule>())
            {
                application.Initialize();

                var myService = application.ServiceProvider.GetService<IMyService>();
                myService.Run();

                Console.WriteLine("Press ENTER to stop application...");
                Console.ReadLine();

                application.Shutdown();
            }
        }
    }
}
  • 通过Application来加载启动模块

  • 通过模块化封装模块本身的行为与依赖

  • Application接替整个应用程序的生命周期、启动、初始化、卸载

  • 通过模块化模块内的行为和依赖注入到全局application的DI容器中

  • 输出

Hello World!
Press ENTER to stop application...