.NET Core 如何调用 WebService

因为现在的项目都是基于 .NET Core 的,但是某些需要调用第三方的 WebService 服务,故有了此文章。其基本思路是通过微软提供的 Svcutil 工具生成代理类,然后通过 System.ServiceModel 来调用代理类所提供的对象与方法。 ...

Abp 源码分析:十三、多语言(本地化)处理

0.简介 如果你所开发的需要走向世界的话,那么肯定需要针对每一个用户进行不同的本地化处理,有可能你的客户在日本,需要使用日语作为显示文本,也有可能你的客户在美国,需要使用英语作为显示文本。如果你还是一样的写死错误信息,或者描述信息,那么就无法做到多语言适配。 Abp 框架本身提供了一套多语言机制来帮助我们实现本地化,基本思路是 Abp 本身维护一个键值对集合。只需要将展示给客户的文字信息处都使用一个语言 Key 来进行填充,当用户登录系统之后,会取得当前用户的区域文化信息进行文本渲染。 0.1 如何使用 我们首先来看一下如何定义一个多语言资源并使用。首先 ...

Abp 源码分析:十二、多租户体系与权限验证

0.简介 承接上篇文章我们会在这篇文章详细解说一下 Abp 是如何结合 IPermissionChecker 与 IFeatureChecker 来实现一个完整的多租户系统的权限校验的。 1.多租户的概念 多租户系统又被称之为 Saas ,比如阿里云就是一个典型的多租户系统,用户本身就是一个租户,可以在上面购买自己的 ECS 实例,并且自己的数据与其他使用者(租户)所隔绝,两者的数据都是不可见的。 那么 Abp 是如何实现数据隔离的呢? 1. ...

Abp 源码分析:十一、权限验证

0.简介 Abp 本身集成了一套权限验证体系,通过 ASP.NET Core 的过滤器与 Castle 的拦截器进行拦截请求,并进行权限验证。在 Abp 框架内部,权限分为两块,一个是功能(Feature),一个是权限项(Permission),在更多的时候两者仅仅是概念不同而已,大体处理流程还是一样的。 由于 Abp 本身是针对多租户架构进行设计的,功能是相对于租户而言, ...

Abp 源码分析:十、异常处理

0.简介 Abp 框架本身针对内部抛出异常进行了统一拦截,并且针对不同的异常也会采取不同的处理策略。在 Abp 当中主要提供了以下几种异常类型: 异常类型 描述 AbpException Abp 框架定义的基本异常类型,Abp 所有内部定义的异常类型都继承自本类。 AbpInitializationException Abp 框架初始化时出现错误所抛出的异常。 AbpDbConcurrencyException 当 EF Core 执行数据库操作时产生了 DbUpdateConcurrencyException 异常的时候 Abp ...