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功能

  1. 安装NuGet 包:Autofac.Extras.DynamicProxy

AOP 的概念这里就不在赘述,和 dotNET Core 内置的拦截器(Filter、中间件)的区别是 Autofac 的 AOP 针对具体业务方法而不是 HTTP 请求。

  1. 创建 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、调用结果如下:
image.png

目录
相关文章
|
26天前
|
开发框架 .NET 开发者
简化 ASP.NET Core 依赖注入(DI)注册-Scrutor
Scrutor 是一个简化 ASP.NET Core 应用程序中依赖注入(DI)注册过程的开源库,支持自动扫描和注册服务。通过简单的配置,开发者可以轻松地从指定程序集中筛选、注册服务,并设置其生命周期,同时支持服务装饰等高级功能。适用于大型项目,提高代码的可维护性和简洁性。仓库地址:&lt;https://github.com/khellang/Scrutor&gt;
41 5
|
2月前
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
47 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
1月前
|
开发框架 缓存 .NET
GraphQL 与 ASP.NET Core 集成:从入门到精通
本文详细介绍了如何在ASP.NET Core中集成GraphQL,包括安装必要的NuGet包、创建GraphQL Schema、配置GraphQL服务等步骤。同时,文章还探讨了常见问题及其解决方法,如处理复杂查询、错误处理、性能优化和实现认证授权等,旨在帮助开发者构建灵活且高效的API。
28 3
|
10天前
|
开发框架 算法 中间件
ASP.NET Core 中的速率限制中间件
在ASP.NET Core中,速率限制中间件用于控制客户端请求速率,防止服务器过载并提高安全性。通过`AddRateLimiter`注册服务,并配置不同策略如固定窗口、滑动窗口、令牌桶和并发限制。这些策略可在全局、控制器或动作级别应用,支持自定义响应处理。使用中间件`UseRateLimiter`启用限流功能,并可通过属性禁用特定控制器或动作的限流。这有助于有效保护API免受滥用和过载。 欢迎关注我的公众号:Net分享 (239字符)
26 0
|
开发框架 前端开发 .NET
ASP.NET Core 核心特性学习笔记「下」
ASP.NET Core 核心特性学习笔记「下」
|
开发框架 前端开发 中间件
ASP.NET Core 核心特性学习笔记「上」
ASP.NET Core 核心特性学习笔记「上」
|
SQL 机器学习/深度学习 Cloud Native
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
- 状态 - 自动变更检测 - 不查询删除和更新 - 并发
257 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 更新和迁移)--学习笔记
|
SQL Cloud Native 架构师
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记
- 关联数据加载 - 客户端与服务端运算 - 跟踪与不跟踪 - 复杂查询运算 - 原生 SQL 查询 - 全局查询筛选器
251 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 查询)--学习笔记
|
Cloud Native 架构师
|
存储 开发框架 Cloud Native
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 基础与配置)--学习笔记
- 连接字符串 - 异步编程 - 日志 - DbContext池 - 类和配置表 - 属性和列配置 - 并发token - 索引
313 0
.NET 云原生架构师训练营(模块二 基础巩固 EF Core 基础与配置)--学习笔记