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依赖.(参见依赖注入文档).

  • 相关阅读:
    [转载自 文顶顶]iOS开发UI篇—程序启动原理和UIApplication
    中专生自学Android到找到工作的前前后后
    HashCode与IEqualityComparer接口
    abp vnext使用记录之微服务
    asp.net core 外部认证多站点模式实现
    xamarin.android 绑定百度地图SDK遇到的问题
    asp.net core 之多语言国际化自定义资源文件
    asp.net core tags 扩展之 id 和 name
    asp.net 后台任务作业框架收集
    向量
  • 原文地址:https://www.cnblogs.com/fxck/p/13076459.html
Copyright © 2011-2022 走看看