ASP.NET Core 使用记录2
【摘要】 .net sdk 版本的切换版本更改命令:dotnet new globaljson --sdk-version 版本 --force CultureInfoSystem.Globalization 程序集下的类它提供有关特定区域性(对于非托管代码开发,则称为“区域设置”)的信息。 这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期和数字的格式化设置。简而言之,就是...
.net sdk 版本的切换
版本更改命令:dotnet new globaljson --sdk-version 版本 --force
CultureInfo
System.Globalization 程序集下的类
它
提供有关特定区域性(对于非托管代码开发,则称为“区域设置”)的信息。 这些信息包括区域性的名称、书写系统、使用的日历、字符串的排序顺序以及对日期和数字的格式化设置。
简而言之,就是提供一些关于一些区域的文化信息。
API 和 SDK的区别
api 就是服务接口,可以供所有人调用,但对于不同语言的开发者而言,他们调用api大体流程相同但总是需要编写请求的代码。对于需要经常调用这个api的开发者而言,当然是不希望每次调用都需要编写请求得代码,希望能有更方便得调用,那么 sdk应运而生, 它就是对api调用的进一步封装,对于经常使用开发者而言,只需要下载sdk,直接使用服务即可,不需要关心内部的api调用方式过程。
动态代理AOP功能
- 安装NuGet 包:Autofac.Extras.DynamicProxy
AOP 的概念这里就不在赘述,和 dotNET Core 内置的拦截器(Filter、中间件)的区别是 Autofac 的 AOP 针对具体业务方法而不是 HTTP 请求。
- 创建 UserServiceInterceptor 拦截类,继承自 IInterceptor:
public class UserServiceInterceptor:IInterceptor
{
public virtual void Intercept(IInvocation invocation)
{
Console.WriteLine($"{DateTime.Now}: 方法执行前");
invocation.Proceed();
Console.WriteLine($"{DateTime.Now}: 方法执行后");
}
}
2、修改 Startup 类中的 ConfigureContainer 方法,进行 AOP 的注册:
public void ConfigureContainer(ContainerBuilder builder)
{
builder.RegisterType<UserServiceInterceptor>();
builder.RegisterType<UserService>().As<IUserService>()
.EnableInterfaceInterceptors()
.InstancePerLifetimeScope();
}
- 注册 UserServiceInterceptor 拦截器
- 注册 UserService 服务的时候调用 EnableInterfaceInterceptors 启用拦截器
3、修改 UserService 类,添加 AOP 特性标记:
[Intercept(typeof(UserServiceInterceptor))]
public class UserService: IUserService
{
//public IDeptService DeptService { get; set; }
public string GetUserName()
{
Console.WriteLine($"{DateTime.Now}: 方法执行中");
return "oec2003";
//return $"oec2003({DeptService.GetDeptName()})";
}
}
4、调用结果如下:
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)