install-package volo.abp.core -version 3.3.2
helloabpmodule.cs
using volo.abp.modularity;namespace helloabp{ /// <summary> /// 启动模块 /// </summary> public class helloabpmodule : abpmodule { }}
helloworldrvice.cs
using system;using volo.abp.dependencyinjection;namespace helloabp{ /// <summary> /// todo: ab治疗乳腺增生的偏方p 注册服务方式一: 继承接口 /// isingletondependency、iscopeddependency、itransientdependency /// </summary> public class helloworldrvice : itransientdependency { public void run() { console.writeline($"{nameof(helloabpmodule)}-{nameof(helloworldrvice)}: hello world!"); } }}
program.cs
using system;using microsoft.extensions.dependencyinjection;using volo.abp;namespace helloabp{ class program { static void main(string[] args) { // 根据启动模块创建 abp 应用 var application = abpapplicationfactory.create<helloabpmodule>(); // 初始化 abp 应用 application.initialize(); // 获取应用中注册的服务 var rvice = application.rviceprovider.getrvice<helloworldrvice>(); // 调用应用中的服务方法 rvice.run(); console.readkey(); } }}
install-package volo.abp.core -version 3.3.2install-package volo.abp.aspnetcore.mvc -version 3.3.2
appmodule.cs
using system;using system.collections.generic;using system.linq;using system.threading.tasks;using microsoft.aspnetcore.builder;u一如既往英文sing microsoft.aspnetcore.http;using microsoft.extensions.hosting;using volo.abp;using volo.abp.aspnetcore.mvc;using volo.abp.modularity;namespace hellowebabp{ /// <summary> /// 启动模块 /// todo: 1.在启动模块中配置 asp.net core web 程序的管道,就需要定义对 asp.net core mvc模块的依赖 /// </summary> [dependson(typeof(abpaspnetcoremvcmodule))] public class appmodule : abpmodule { /// <summary> /// 应用初始化方法 /// todo: 2.重写 abp 应用的初始化方法,用来构建 asp.net core 应用程序的中间件管道 /// </summary> /// <param name="context"></param> public override void onapplicationinitialization(applicationinitializationcontext context) { // ba.onapplicationinitialization(context); var app = context.getapplicationbuilder(); var env = context.getenvironment(); if (env.isdevelopment()) { app.udeveloperexceptionpage(); } app.urouting(); // todo: 5.将 程序应用的端点配置 修改为 abp 应用的端点配置 app.uconfiguredendpoints(); 施拉普纳 } }}
startup.cs
using microsoft.aspnetcore.builder;using microsoft.aspnetcore.hosting;using microsoft.aspnetcore.http;using microsoft.extensions.dependencyinjection;using microsoft.extensions.hosting;using system;using system.collections.generic;using system.linq;using system.threading.tasks;namespace hellowebabp{ /// <summary> /// 程序启动类 /// todo: 3. 在 startup 类中,完成对 abp 应用的初始化 /// </summary> public class startup { // this method gets called by the runtime. u this method to add rvices to the container. // for more information on how to configure your application, visit https://go.microsoft.com/fwlink/?linkid=398940 public void configurervices(irvicecollection rvices) { rvices.addapplication<appmodule>(); } // this method gets called by the runtime. u this method to configure the http request pipeline. public void configure(iapplicationbuilder app, iwebhostenvironment env) { app.initializeapplication(); } }}
homecontroller.cs
using microsoft.aspnetcore.mvc;using system;using system.collections.generic;using system.linq;using system.threading.tasks;using volo.abp.aspnetcore.mvc;namespace hellowebabp.controllers{ /// <summary> /// 控制器 /// todo: 4. 继承 abp 框架中的基类控制器(提供了一些便捷的服务和方法) /// </summary> public class homecontroller : abpcontroller { public iactionresult index() { return content("hello world!"); } }}
abp应用中的模块可以有很多个,但是启动模块只能有一个;
abp应用中的每个模块之间没有必然的联系;
abp应用中每个模块注册的服务,都注册到了abp应用的全局容器中;
abp应用中的模块也分为两种类型:应用程序模块(业务实现)和框架模块(技术实现);
abp应用中最顶层的模块是启动模块,最后被加载的也是启动模块。
helloabpmodule.cs
using system;using system.collections.generic;using system.text;using microsoft.extensions.dependencyinjection;using volo.abp;using volo.abp.modularity;namespace helloabp{ /// <summary> /// 启动模块 /// </summary> public class helloabpmodule : abpmodule { // todo: 重写 abp 模块的服务配置方法,向模块中注册自定义的服务 public override void configurervices(rviceconfigurationcontext context) { ba.configurervices(context); // todo: abp 注册服务方式二: 模块注册 context.rvices.addtransient<helloworldrvice>(); } }}
小结
初始化abp模块
1.注册abp基础设施与核心服务(模块系统相关)2.加载整个应用的所有模块,按照依赖性排序3.按顺序遍历所有模块,执行每一个模块的配置方法4.按顺序遍历所有模块,执行每一个模块的初始化方法
helloworldrvice.cs
using system;using system.collections.generic;using system.text;using microsoft.extensions.dependencyinjection;using volo.abp.dependencyinjection;namespace helloabp{ /// <summary> /// todo: abp 注册服务方式三: 特性标签 /// rvicelifetime.singleton、rvicelifetime.scoped、rvicelifetime.transient /// </summary> [dependency(rvicelifetime.transient)] public class helloworldrvice { public void run() { console.writeline($"{nameof(helloabpmodule)}-{nameof(helloworldrvice)}: hello world!"); } }}
install-package volo.abp.autofac -version 3.3.2
helloabpmodule.cs
using system;using system.collections.generic;using system.text;using microsoft.extensions.dependencyinjection;using volo.abp;using volo.abp.autofac;using volo.abp.modularity;namespace helloabp{ /// <summary> /// 启动模块 /// </summary> // todo: 使用 autofac 第三方依赖注入框架(提供了更多的高级特性) [dependson(typeof(abpautofacmodule))] public class helloabpmodule : abpmodule { public override void configurervices(rviceconfigurationcontext context) { ba.configurervices(context); context.rvices.addtransient<helloworldrvice>(); } }}
program.cs
using system;using microsoft.extensions.dependencyinjection;using volo.abp;namespace helloabp{ class program { static void main(string[] args) { { // 根据启动模块创建 abp 应用 var application = abpapplicationfactory.create<helloabpmodule>(options => { // 集成 autofac 二次函数平移规律options.uautofac(); }); // 初始化 abp 应用 application.initiali关于人工智能的电影ze(); // 获取应用中注册的服务 var rvice = application.rviceprovider.getrvice<helloworldrvice>(); // 调用应用中的服务方法 rvice.run(); } console.writeline("hello world!"); console.readkey(); } }}
abpsample
到此这篇关于.net core使用apb vnext框架入门教程的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-05 01:46:04,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/e8c6ff545979ac8dcec00b47e6b7cf46.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:.NET Core使用APB vNext框架入门教程.doc
本文 PDF 下载地址:.NET Core使用APB vNext框架入门教程.pdf
留言与评论(共有 0 条评论) |