安装基础包
开始
首先新建一个解决方案添加两个项目,一个控制台项目(TestAbpConsole),一个类库项目(Test)。在两个项目中都安装 Volo.Abp.Core 包。
在 Test 项目中添加 TestModule 类
1using Volo.Abp.Modularity;2
3namespace Test4{5 public class TestModule : AbpModule6 {7 }8}添加 HelloWorldService 类
1using System;2using Volo.Abp.DependencyInjection;3
4namespace Test5{6 public class HelloWorldService : ITransientDependency7 {8 public void SayHello()9 {10 Console.WriteLine("Hello World!");11 }12 }13}ITransientDependency是 ABP 的一个特殊接口, 它自动将服务注册为 Transient 生命周期。
修改 TestAbpConsole 项目的 Main 方法
1using System;2using TestModule;3using Microsoft.Extensions.DependencyInjection;4using Volo.Abp;5
6namespace AbpModule7{8 class Program9 {10 static void Main(string[] args)11 {12 using var application = AbpApplicationFactory.Create<TestModule>();13 application.Initialize();14 var helloWorldService = application.ServiceProvider.GetService<HelloWorldService>();15 helloWorldService.SayHello();5 collapsed lines
16
17 Console.ReadLine();18 }19 }20}输出
1Hello World在 Web 项目中使用
使用 abp 命令新建一个 Web 项目
1abp new Test如果通过命令因为网络不好使请在这个网站创建项目。
新建一个模块项目
新建一个名为 Test 的类库项目,首先通过 NuGet 工具安装 Volo.Abp.AspNetCore.Mvc 包,新建 TestModule 类
1using Microsoft.AspNetCore.Builder;2using Volo.Abp.Modularity;3
4namespace Test5{6 public class TestModule : AbpModule7 {8 public override void ConfigureServices(ServiceConfigurationContext context)9 {10 }11
12 public void Configure(IApplicationBuilder app)13 {14 app.UseEndpoints(endpoints =>15 {5 collapsed lines
16 endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");17 });18 }19 }20}然后添加一个 HomeController 控制器
1using Microsoft.AspNetCore.Mvc;2using Volo.Abp.AspNetCore.Mvc;3
4namespace Test.Controller5{6 public class HomeController : AbpController7 {8 public IActionResult Index()9 {10 return Json("Hello World");11 }12 }13}设置 Test.Web 项目为启动项,添加 Test 引用到此项目中, 在 TestWebModule 中添加模块
1[DependsOn(2 ...,3 typeof(TestModule)4)]5public class TestWebModule : AbpModule6{7...先运行 Test.DbMigrator 完成数据库的迁移,然后启动 Test.Web 项目查看 /Home/Index 页面,可看到输出Hello World。