zoukankan      html  css  js  c++  java
  • 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...
    
  • 相关阅读:
    Java中类与类的关系
    谈谈spring
    mybatis和hibernate的区别
    微信小程序文档解读(一)--api提供支持有哪些
    nodejs问题整理--fs.exists无法正确判断文件的问题
    微信小程序-多级联动
    react
    [微信小程序] 终于可以愉快的使用 async/await 啦
    [Node] 逃离回调地狱
    单例模式
  • 原文地址:https://www.cnblogs.com/easy5weikai/p/13958422.html
Copyright © 2011-2022 走看看