Browse Category by C#开发

IOptions、IOptionsMonitor以及IOptionsSnapshot

背景 ASP.NET Core引入了Options模式,使用类来表示相关的设置组。简单的来说,就是用强类型的类来表达配置项,这带来了很多好处。 初学者会发现这个框架有3个主要的面向消费者的接口:IOptions、IOptionsMonitor以及IOptionsSnapshot。 这三个接口初看起来很类似,所以很容易引起困惑,什么场

ConcurrentDictionary并发字典

ConcurrentDictionary主要用于要从多个线程(或异步任务)修改字典的情景中。如果来自单个线程,则可以根据需要使用尽可能多的代码使用标准Dictionary;) 如果您查看ConcurrentDictionary上的方法,则会发现一些有趣的方法,例如TryAdd,TryGetValue,TryUpdate和TryRemove。 例如,若使用普通的Dictionary类时可能会看到

Kestrel源码分析

Kestrel是http://ASP.NET Core框架内置的默认Web Server 什么是Web Server? 根据维基百科的定义: W

.NET Core 获取 HttpContext.Current 以及 AsyncLocal 与 ThreadLocal

在 DotNetCore 当中不再像 MVC5 那样可以通过 HttpContext.Current 来获取到当前请求的上下文。 不过微软提供了一个 IHttpContextAccessor 来让我们访问当前请求的 Http 上下文,其定义 如下: namespace Microsoft.AspNetCore.Http { public interface IHttpContex

c#特性参数

可以通过反射获取这些特性然后做处理 class Program { static void Main(string[] args) { var message = new MessageData { Header="header...", Body="body....", ...

Orleans 最佳实践

重入 grain激活体是单线程的,默认情况下,激活体会自始至终地处理完成每个请求后,才会处理下一个请求。 可重入的激活体,可以在上一个请求尚未完成处理的情况下,开始执行另一个请求。执行仍然限于单个线程,因此激活体仍然一次执行一个回合,并且每个回合仅代表激活体的一个请求执行。 可重入的grain代码永远不会并行运行多段grain代码(grain代码的执行将始终是单线程的),但是,可

abp默认语言规则

abp默认语言规则 abp是依托与aspnetcore的.我们先来看看aspnetcore是怎么实现的 services.Configure<RequestLocalizationOptions>(options => { var supportedCultures = new List<CultureInfo>