11 2023 档案
摘要:以下代码的源代码仓库:https://gitee.com/shllong/.net-Read-webConfig/tree/master 引用包: Microsoft.Extensions.Configuration 配置类库 Microsoft.Extensions.Configuration.B
阅读全文
摘要:需要引用包: Microsoft.Extensions.Configuration 配置文件类库 Microsoft.Extensions.Configuration.Binder 将配置文件转换成实体类的类库 Microsoft.Extensions.Configuration.Json 读取Js
阅读全文
摘要:.net 可以读取多种不同类型的配置文件,如:json、xml、ini等。 读取配置文件需要使用到的包: Microsoft.Extensions.Configuration 读取配置文件主要类库 Microsoft.Extensions.Configuration.Binder 将配置文件转换为实
阅读全文
摘要:实例化带参数类 如果一个类,在初始化时需要带一个参数,则在注册时使用AddScoped、AddTransient、AddSingleton的回调函数。 services.AddScoped<IConfigService>(s=>new TxtConfigServer() { FileName = "
阅读全文
摘要:使用类:Environment 使用方法:GetEnvironmentVariable 示例: public string GetValue(string name) { return Environment.GetEnvironmentVariable(name); }
阅读全文
摘要:.net 依赖注入使用的是构造函数注入方式,并且具有传染性。 比如有一个控制器中使用了日志和存储两个类,而存储中使用了日志类和配置类,则都只需要在其构造函数中写需要的类,然后在容器中注册,就可以直接使用。 日志类代码 // 日志接口 public interface ILog { public vo
阅读全文
摘要:实现了IDisposable接口的类会在离开using时自动调用Dispose方法 public class DisposeClass : IDisposable { public string Name { get; set; } public void Dispose() { this.Name
阅读全文
摘要:引言 控制反转(IoC)实现方法: (隐式)依赖注入:需要什么服务(类),直接在类里面写,然后系统在创建类的时候给服务(类)自动赋值。 (显式)服务定位器:需要什么服务(类)在给服务定位器要什么服务(类) 1. 初始化使用 引用包:Microsoft.Extensions.DependencyInj
阅读全文
摘要:1. 自定义Where方法 static void MM(string[] args) { IEnumerable<int> ints = new int[] { 1, 2, 4, 63, 12, 34, 46, 12, 45, 12456 }; // 使用LINQ中的Where方法 //IEnum
阅读全文
摘要:委托可以演变为匿名方法,然后由匿名方法演变成为Lambda。 static void MM(string[] args) { // 无参数无返回值的匿名方法 Action a1 = delegate () { Console.WriteLine("这是一个匿名方法"); }; a1(); // 有参
阅读全文
摘要:如果有多个Task任务,如果需要等待所有任务执行完成使用:WaitAll或WhenAll 如果只需要等待其中一个执行完成则使用WaitAny或WhenAny When表示有返回值 Wait表示无返回值 static async Task Main(string[] args) { Console.W
阅读全文
摘要:使用yield能将返回值一个一个返回回去,然后接收的地方先进行处理,处理完,等下一个返回值回来后再处理下一个。 static void Main(string[] args) { foreach (var arg in GetStrings()) { Console.WriteLine(arg);
阅读全文
摘要:原文链接:C# 使用Task执行异步操作 - Ryan_zheng - 博客园 (cnblogs.com) 为什么要使用 Task 线程是创建并发的底层工具,因此具有一定的局限性。 没有简单的方法可以从联合(Join)线程得到“返回值”。因此必须创建一些共享域。当抛出一个异常时,捕捉和处理异常也是麻
阅读全文
摘要:开始 异步方法不等于多线程,await是等但又是不等。 1. 调用系统的async方法 static async Task Main(string[] args) { await File.WriteAllTextAsync("a.txt", "xxxxxxxxxx"); string s = aw
阅读全文
摘要:引言 在用await执行方法时,方法有时候会执行特别长时间,在执行过程中想中断方法,需要使用到CancellationToken类。 控制台程序中取消Task任务 一、 创建一个执行需要很长时间的方法 static async Task DownloadAsync(string url, int n
阅读全文
摘要:1. 一个理想的路由算法应具有那些特点?为什么实际路由算法总是不如理想的路由算法? 正确性 计算简单 自适应性 稳定性 公平性 最优性 实际路由算法不如理想路由算法的原因是因为理想算法的各种要求是相互矛盾的,例如,要使吞吐量最大,就可能会增加时延。 2. 路由算法有哪些类型?所谓“确定型”和“自适应
阅读全文