模块对常用组件、服务进行服务注册,可以mvcCoreBuilder、mvcbuilder进行配置,Option的配置,如本地化,MvcOption,AbpAspNetCoreMvcOptions对自动API的控制器,特别是对ApplicationPartManager的part和feature管理

1、配置自动注入,要求是Controller、ViewComponent、PageModel的实现,或者配置Attribute特性,统一是Transient类型

2、Configure Razor 用到ConfigureOptions,配置它的FileProviders是RazorViewEngineVirtualFileProvider

即是IVirtualFileProvider

3、AbpApiDescriptionModelOptions

IgnoredInterfaces = new HashSet{typeof(ITransientDependency),typeof(ISingletonDependency),typeof(IDisposable),typeof(IAvoidDuplicateCrossCuttingConcerns)

};

增加

options.IgnoredInterfaces.AddIfNotContains(typeof(IAsyncActionFilter));

options.IgnoredInterfaces.AddIfNotContains(typeof(IFilterMetadata));

options.IgnoredInterfaces.AddIfNotContains(typeof(IActionFilter));

4、增加注册AddMvcCore(),返回类型是mvcCoreBuilder,

context.Services.ExecutePreConfiguredActions(mvcCoreBuilder);

上面这句话的意思是,可以在前面自定义配置,使用Context.Services.PreConfigure(mvcCoreBuilder=>{配置委托})

同理对AbpMvcDataAnnotationsLocalizationOptions类型,如

options.AddAssemblyResource(typeof(MvcTestResource),typeof(AbpAspNetCoreMvcTestModule).Assembly

);

而且将IOptions,使用new OptionsWrapper ??应该是Configure()是相同的效果??

增加Imvcbuilder,扩展方法增加AddNewtonsoftJson,AbpMvcJsonContractResolver,增加AddRazorRuntimeCompilation对Razor的编译

context.Services.AddMvc()

Func 对于创建IstringLocalizer使用DataAnnotationLocalizerProvider,根据类型的Assembly找到对应的Resource

再增加View Localization的服务到应用,也可以对IMvcbuilder进行配置,注入IActionContextAccessor,负责自动创建APi服务的ServiceBasedControllerActivator

创建ViewComponent的 ServiceBasedViewComponentActivator

ApplicationPartManager管理的parts和features

配置MvcOptions

AddConventions(options, services);AddFilters(options);

AddModelBinders(options);

AddMetadataProviders(options, services);

在应用初始化时增加程序集的ApplicationParts,插件集直接添加 ,否则要求的是ConventionalControllerSetting下的Assembly

即:AbpAspNetCoreMvcOptions》AbpConventionalControllerOptions》ConventionalControllerSettingList》ConventionalControllerSetting (包括关系)

即是在配置自动的API控制器,它会增加到ConventionalControllerSettingList列表,这个ConventionalControllerSetting的 Assembly会增加到ApplicationParts

Configure(options =>{

options

.ConventionalControllers

.Create(typeof(BookStoreApplicationModule).Assembly);

});

又因为FeatureProviders增加了AbpConventionalControllerFeatureProvider,重写什么是IsController方法,ConventionalControllerSetting下面ControllerTypes包含的类型,而这个类型在Create的方法将它个程序集下所有IRemoteService(可以继承,也可以设RemoteServiceAttribute)添加进去,实现IRemoteService的方法有ApplicationService,增加委托方法,可以将下面的委托进行操作

这个RootPath="app",TypePredicate,ControllerModelConfigurer,UrlControllerNameNormalizer,UrlActionNameNormalizer,ApiVersionConfigurer,List

在MvcOption下 options.Conventions.Add(new AbpServiceConventionWrapper(services)); 它增加了其中IApplicationModelConvention的,Abp将自定义的包装AbpServiceConventionWrapper添加了进去,它可以Controller进行自定义设置

ApplicationModel,是存储对象有

ApiExplorerModel:主要是配置默认MVC Api Explorer的一些东西,包括Api的描述信息,组信息,可见性等

ControllerModel:主要是 Comtroller 默认约定相关的了 IList记录了程序集所有Controller信息,可以自定义设置

IFilterMetadata :空接口,主要起到标记的作用。

ApiExplorer.visible是默认true.包括Controller以及Action

Selector:包括controller和action

ActionConstraints:即Get POST方法

AttributeRouteModel:AttributeRouteModel即路由关系,增加路由关系;RouteTemplate:Api/app/

EndpointMetadata :包括Attribute

Parameter:BindingInfo

/*Default binding system of Asp.Net Core for a parameter

* 1. Form values

* 2. Route values.

* 3. Query string.*/

Abp在不是"GET", "DELETE", "TRACE", "HEAD"方法上,即主要是Post、Put、Patch方法上增加了FromBodyAttribute

避免横切关注点重复执行,目标是AbpController和ApplicationService,在ActionFilter里面增加了Audit和Feature拦截器

那么自己的拦截器就不要使用了,

abp angular 和mvc_MVC - abp-angular - 博客园相关推荐

  1. 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目

    基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目 转载于:https://github.com/Meowv/Blog 既然开发完成了,还是拿出来溜溜比较好,本篇是本 ...

  2. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九) 转载于:https://github.com/Meowv/Blog 终于要接近尾声了,上一篇基本上将文 ...

  3. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八) 转载于:https://github.com/Meowv/Blog 上一篇完成了标签模块和友情链接模块 ...

  4. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七) 转载于:https://github.com/Meowv/Blog 上一篇完成了后台分类模块的所有功能 ...

  5. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客文章详情页面的数据 ...

  6. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五) 转载于:https://github.com/Meowv/Blog 上一篇完成了分类标签友链的列表查询 ...

  7. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的分页查询文章列表 ...

  8. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的主题切换,菜单和 ...

  9. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)

    基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二) 转载于:https://github.com/Meowv/Blog 上一篇搭建了 Blazor 项目并 ...

  10. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五)

    基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五) 转载于:https://github.com/Meowv/Blog 上篇文章完成了文章详情页数据查询和清除缓存 ...

最新文章

  1. java 传参字符串数组_JAVA语言之okhttp传递数组参数
  2. ASCII、Unicode、GBK、UTF-8之间的关系
  3. Database之SQLSever:T-SQL数据语言操作(数据定义语句DDL、数据操作语句DML、数据控制语句DCL、其他基本语句、流程控制语句、批处理语句)概念及其相关案例之详细攻略
  4. Dotfuscator使用教程
  5. flash activex java_Adobe flash player ActiveX和NPAPI和PPAPI 这三个软件有什么区别?
  6. codeforces gym-101741 Elevator 动态规划、单调队列
  7. Online开发初体验——Jeecg-Boot 在线设计流程
  8. Neo4j从mysql读取数据_[bigdata-086] python3+neo4j 从mysql数据库读取记录然后创建节点和关系写入到neo4j...
  9. 杨森翔的书法:立马【五绝】
  10. scala中zip拉链的操作
  11. [ArcGIS] 模型构造器中使用重分类 ArcPy与Numpy 相等间隔重分类
  12. 国稻种芯百团计划行动 胡培松:早稻可以向用途多元化发展
  13. 【python】urlencode、quote、unquote
  14. 《千字文》 梁•周兴嗣
  15. wechat sdk java_使用java集成微信支付sdk。
  16. MOSES统计机器翻译系统实现过程
  17. java字符串长度(java字符串长度压缩)
  18. VS2019使用stricmp函数时出现错误
  19. 【Python基础知识库】Python类的继承
  20. 如何挑选数据可视化框架及平台 - 前端篇

热门文章

  1. SQL 2008 表死锁的解决
  2. 对DNN的一些高层架构设想
  3. 命令 结构_只需一个命令!从你的U盘里读出更多内容
  4. 右击计算机管理出现乱码,win10系统右键菜单出现乱码的处理方案
  5. arduino蜂鸣器音乐代码青花瓷_教你用 Arduino 制造简易金属探测器
  6. 传统云纹祥云素材,稳妥传承中国味!
  7. 设计灵感|有趣优雅的弹窗消息设计!
  8. 背景素材|令人惊讶水彩背景,新尝试
  9. 万圣节活动BANNER设计有方案了吗?拿走精品PSD分层模板!
  10. 纯文字极简风格平面海报,PSD分层模板!