ABP之模块】的更多相关文章

ABP的反射 为什么先讲反射,因为ABP的模块管理基本就是对所有程序集进行遍历,再筛选出AbpModule的派生类,再按照以来关系顺序加载. ABP对反射的封装着重于程序集(Assembly)与类(Type).系统中分别定义了IAssemblyFinder与ITypeFinder两个接口,从命名上就可以看出这两个接口主要是用来进行程序集与类查找的. IAssemblyFinder只提供了一个方法 GetAllAssemblies(),从IAssemblyFinder的实现类CurrentDoma…
ABP的模块非常方便我们扩展自己的或使用ABP提供的模块功能,对于ABP自身提供的模块间的依赖关系想一探究竟,并且试着把不必要的模块拆掉,找到那部分核心模块.本次使用的是AspNetBoilerplate. 源码下载 从Github下载ABP源码后,进入src文件夹,提供的大部分模块都在此中.很多工具也经ABP封装,个人认为是方便了集成使用且融入到ABP这个框架. src文件夹中的类库有几种类型如.net standard(为了兼容.net framework)..net 5 ..net fra…
Abp 审计模块源码解读 Abp 框架为我们自带了审计日志功能,审计日志可以方便地查看每次请求接口所耗的时间,能够帮助我们快速定位到某些性能有问题的接口.除此之外,审计日志信息还包含有每次调用接口时客户端请求的参数信息,客户端的 IP 与客户端使用的浏览器.有了这些数据之后,我们就可以很方便地复现接口产生 BUG 时的一些环境信息. 源码地址Abp版本:5.1.3 初探 我通过abp脚手架创建了一个Acme.BookStore项目在BookStoreWebModule类使用了app.UseAud…
文档目录 本节内容: 简介 模块定义 生命周期方法 PreInitialize(预初始化) Initialize(初始化) PostInitialize(提交初始化) Shutdown(关闭) 模块依赖 插件模块 Asp.net Core Asp.net Mvc,Web Api 插件中的控制器 附加程序集 自定义模块方法 模块配置 模块生命期 简介 ABP为创建模块及组织它们提供基础框架.一个模块可依赖于另一个模块.通常地,一个程序集做为一个模块.如果你的应用是多个程序集,建议为每个程序集定义一…
本篇作为我ABP介绍的第三篇文章,这次想讲下模块的,ABP文档已经有模块这方面的介绍,但是它只讲到如何使用模块,我想详细讲解下它模块的设计思路. ABP 框架提供了创建和组装模块的基础,一个模块能够依赖于另一个模块.在通常情况 下,一个程序集就可以看成是一个模块.在 ABP 框架中,一个模块通过一个类来定义,而这 个类要继承自 AbpModule. 其实它的设计思路很简单: 1.加载bin目录下的所有dll public class WebAssemblyFinder : IAssemblyFi…
简介 ASP.NET Boilerplate提供了构建模块的基础结构,并将它们组合在一起以创建应用程序. 模块可以依赖于另一个模块. 通常,一个程序集被视为一个模块. 如果创建具有多个程序集的应用程序,建议您为每个程序集创建一个模块定义. 模块系统目前专注于服务端,而不是客户端. 模块定义 定义一个派生自ABP包中的AbpModule的类作为一个模块.假设我们现在正在开发一个可以在不同应用程序中使用的Blog模块.最简单的模块定义如下: public class MyBlogApplicatio…
在上一篇介绍在StartUp类中的ConfigureService()中的AddAbp方法后我们再来重点说一说在Configure()方法中的UserAbp()方法,还是和前面的一样我们来通过代码来进行一步步分析. public static class AbpApplicationBuilderExtensions { public static void UseAbp(this IApplicationBuilder app) { app.UseAbp(null); } public sta…
当我们新增一个模块时: public class SSORedisModule: AbpModule { //public override void PreInitialize() //{ // base.PreInitialize(); //} public override void Initialize() { IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly()); } } 可能在模块那里会添加这…
注意 互相关联多使用接口注册,所以可以 根据需要替换. 始于 Startup.cs 中的  通过 AddApplication 扩展方法添加 Abp支持 1 services.AddApplication<AbpWebSiteWebModule>(options => { options.UseAutofac(); options.Configuration.UserSecretsAssembly = typeof(AbpWebSiteWebModule).Assembly; }); 内…
1.定义一个接口  里面是配置的属性等 public interface IMyConfiguration { int Id { get; set; } string Name { get; set; } } 2.实现接口 public class MyConfiguration: IMyConfiguration { public int Id { get; set; } public string Name { get; set; } } 3.定义一个静态配置类(单例)    IModule…