abp angular 和mvc_MVC - abp-angular - 博客园
模块对常用组件、服务进行服务注册,可以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 - 博客园相关推荐
- 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目
基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目 转载于:https://github.com/Meowv/Blog 既然开发完成了,还是拿出来溜溜比较好,本篇是本 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九) 转载于:https://github.com/Meowv/Blog 终于要接近尾声了,上一篇基本上将文 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(八) 转载于:https://github.com/Meowv/Blog 上一篇完成了标签模块和友情链接模块 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七) 转载于:https://github.com/Meowv/Blog 上一篇完成了后台分类模块的所有功能 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客文章详情页面的数据 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五) 转载于:https://github.com/Meowv/Blog 上一篇完成了分类标签友链的列表查询 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的分页查询文章列表 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(三) 转载于:https://github.com/Meowv/Blog 上一篇完成了博客的主题切换,菜单和 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)
基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二) 转载于:https://github.com/Meowv/Blog 上一篇搭建了 Blazor 项目并 ...
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五)
基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(五) 转载于:https://github.com/Meowv/Blog 上篇文章完成了文章详情页数据查询和清除缓存 ...
最新文章
- java 传参字符串数组_JAVA语言之okhttp传递数组参数
- ASCII、Unicode、GBK、UTF-8之间的关系
- Database之SQLSever:T-SQL数据语言操作(数据定义语句DDL、数据操作语句DML、数据控制语句DCL、其他基本语句、流程控制语句、批处理语句)概念及其相关案例之详细攻略
- Dotfuscator使用教程
- flash activex java_Adobe flash player ActiveX和NPAPI和PPAPI 这三个软件有什么区别?
- codeforces gym-101741 Elevator 动态规划、单调队列
- Online开发初体验——Jeecg-Boot 在线设计流程
- Neo4j从mysql读取数据_[bigdata-086] python3+neo4j 从mysql数据库读取记录然后创建节点和关系写入到neo4j...
- 杨森翔的书法:立马【五绝】
- scala中zip拉链的操作
- [ArcGIS] 模型构造器中使用重分类 ArcPy与Numpy 相等间隔重分类
- 国稻种芯百团计划行动 胡培松:早稻可以向用途多元化发展
- 【python】urlencode、quote、unquote
- 《千字文》 梁•周兴嗣
- wechat sdk java_使用java集成微信支付sdk。
- MOSES统计机器翻译系统实现过程
- java字符串长度(java字符串长度压缩)
- VS2019使用stricmp函数时出现错误
- 【Python基础知识库】Python类的继承
- 如何挑选数据可视化框架及平台 - 前端篇