zoukankan      html  css  js  c++  java
  • 入门系列-在控制台应用中使用ABP

    本教程将介绍如何从头开始以最小的依赖关系启动ABP. 你通常希望以 启动模板 开头.

    创建一个新项目

    使用Visual Studio创建一个新的.Net Core Console应用程序:

    安装 Volo.Abp 包

    Volo.Abp.Core是创建基于ABP的应用程序的核心nuget包. 所以,将它安装到你的项目中:

    Install-Package Volo.Abp.Core
    

    创建第一个ABP模块

    ABP是一个模块化框架, 它需要一个从AbpModule类派生的 启动(根)模块 类:

    using Microsoft.Extensions.DependencyInjection;
    using Volo.Abp.Modularity;
    
    namespace AbpConsoleDemo
    {
        public class AppModule : AbpModule
        {
            
        }
    }
    

    AppModule 是应用程序启动模块的好名称.

    初始化应用程序

    下一步是使用上面创建的启动模块引导应用程序:

    using System;
    using Volo.Abp;
    
    namespace AbpConsoleDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var application = AbpApplicationFactory.Create<AppModule>())
                {
                    application.Initialize();
    
                    Console.WriteLine("Press ENTER to stop application...");
                    Console.ReadLine();
                }
            }
        }
    }
    
    

    AbpApplicationFactory 用于创建应用程序并加载所有以AppModule作为启动模块的模块. Initialize()方法启动应用程序.

    Hello World!

    上面的应用程序什么都不做, 让我们创建一个服务做一些事情:

    using System;
    using Volo.Abp.DependencyInjection;
    
    namespace AbpConsoleDemo
    {
        public class HelloWorldService : ITransientDependency
        {
            public void SayHello()
            {
                Console.WriteLine("Hello World!");
            }
        }
    }
    
    

    ITransientDependency是ABP的一个特殊接口, 它自动将服务注册为Transient(参见依赖注入文档).

    现在,我们可以解析HelloWorldService并调用SayHello. 更改Program.cs, 如下所示:

    using System;
    using Microsoft.Extensions.DependencyInjection;
    using Volo.Abp;
    
    namespace AbpConsoleDemo
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (var application = AbpApplicationFactory.Create<AppModule>())
                {
                    application.Initialize();
    
                    // 解析服务并使用它
                    var helloWorldService = 
                        application.ServiceProvider.GetService<HelloWorldService>();
                    helloWorldService.SayHello();
    
                    Console.WriteLine("Press ENTER to stop application...");
                    Console.ReadLine();
                }
            }
        }
    }
    

    这对于这个简单的代码示例已足够, 如果是直接从IServiceProvider解析建议创建Scoped依赖.(参见依赖注入文档).

  • 相关阅读:
    Java笔记(十六)……内部类
    pmm系列~基础函数
    redis基础篇~性能问题
    redis基础篇~big-key
    mysql基础~经典题目二
    (转)STORM启动与部署TOPOLOGY
    (转)项目经理怎么当
    专注力的一点体会
    163源报错Hash Sum mismatch 解决方法
    mapreduce.framework.name
  • 原文地址:https://www.cnblogs.com/fxck/p/13076459.html
Copyright © 2011-2022 走看看