随笔- 672
文章- 2
评论- 325
阅读-
281万
随笔分类 - C#
使用Json.NET序列化和反序列化对象时,声明命名规则
摘要:在使用Json.NET来序列化和反序列化对象时,我们可以在类或者属性上声明使用什么命名规则,Json.NET目前支持三种命名规则: 帕斯卡命名法(默认):DefaultNamingStrategy 驼峰命名法:CamelCaseNamingStrategy 下划线命名法:SnakeCaseNamin
阅读全文
使用Json.NET序列化对象时,忽略为null的属性
摘要:通过枚举NullValueHandling.Ignore,在使用Json.NET序列化对象为Json字符串时,可以忽略为null的属性,如下代码所示: using Newtonsoft.Json; namespace Net8JsonNullValueDemo { class People { pu
阅读全文
Microsoft.Extensions.DependencyInjection在构造方法注入中,可以注入IServiceProvider接口实例
摘要:我们在使用Microsoft.Extensions.DependencyInjection进行构造方法依赖注入时,可以注入IServiceProvider接口的实例,然后可以用这个实例来获取其它依赖注入的类。 下面的示例代码中,我们定义了IPeople接口和实现类People,是一组依赖注入关系。还
阅读全文
C#中的DateTime、DateTimeOffset和TimeSpan(链接)
摘要:下面的微软官方文档,介绍了C#中的DateTime: DateTime Struct System.DateTime struct 其中这里有提到,DateTime的精度为100纳秒: Time values are measured in 100-nanosecond units called t
阅读全文
C#中获取一个枚举的所有名称和值
摘要:使用下面的C#代码,可以遍历一个枚举中的所有名称(Names)和值(Values): using System.Diagnostics; namespace Net8EnumDemo { enum TestEnume : int { Enum1 = 0, Enum2 = 1, Enum3 = 2 }
阅读全文
C#支持将json中的多种类型反序列化为object类型
摘要:我们知道json中的字段是弱类型的,也就是说json中的一个字段不用事先声明具体的类型,这就导致json中某个字段的值有可能是字符串,也有可能是数字,也有可能是布尔值,其它等。。。但是C#是强类型的,定义一个C#类中字段的时候,必须声明它是什么类型,所以我们可以将json中有不同类型的字段在C#中定
阅读全文
C#中的?.和!.操作符(链接)
摘要:下面的微软官方文档介绍了C#中的?操作符 Generics Nullable reference types (C# reference) 注意上面这个文档里面的这句话: A variable m of type T? is considered to be non-null when you ap
阅读全文
C#的Main方法(链接)
摘要:下面的微软官方文档介绍了C#中的Main方法: Main() and command-line arguments 其中下面的章节介绍了声明Main方法时的一些规定,注意里面有提到Main方法可以是异步(async)函数: Overview
阅读全文
System.Text.Json官方文档(链接)
摘要:下面的微软官方文档中介绍了,如何使用System.Text.Json来序列化和反序列化JSON: JSON serialization and deserialization 其中这里讲解了如何避免循环引用序列化: How to preserve references and handle or i
阅读全文
.NET中的线程池ThreadPool(链接)
摘要:微软推荐在.NET中使用多线程开发时,都使用线程池,下面这篇微软文档介绍了.NET中的线程池类ThreadPool: ThreadPool Class 注意上面文档中的这句话: There is one thread pool per process. 也就是说,每个.NET进程(process)中
阅读全文
.NET项目AsyncLocal在链路追踪中的应用(转载)
摘要:目录 前言 老传统做法 AspNetCore的TraceIdentifier AsyncLocal在链路追踪的应用 项目应用 AspNetCore 前言 在项目生产中日志的记录是必不可少的,在.net项目中,要说日志组件,log4net绝对可有一席之地,随着公司业务的发展,微服务则必定无可避免。在跨
阅读全文
使用Json.NET验证json字符串是否格式正确
摘要:Json.NET中的JObject类非常强大,我们可以用它来验证一个json字符串是否格式正确: using Newtonsoft.Json.Linq; namespace NetCoreJsonObject { internal class Program { static void Main(s
阅读全文
C#中的try catch finally(链接)
摘要:下面这篇微软的官方文档,详细讲述了C#中如何使用try catch finally来处理异常: Exception-handling statements - throw, try-catch, try-finally, and try-catch-finally 其中这个地方有说到,不管是在try
阅读全文
在CI/CD发布流水线中,使用dotnet publish命令编译.NET Core C#代码
摘要:在搭建CI/CD发布流水线(例如Jenkins流水线)发布.NET Core项目时,我们需要在流水线中使用dotnet publish命令来编译C#代码来生成DLL文件。 参考dotnet publish官方文档。 其中这里有说到,dotnet publish命令会隐式调用dotnet restor
阅读全文
c# 如何获取当前方法的调用堆栈(转载)
摘要:c# 调试程序时常常需要借助 call stack 查看调用堆栈,实际上通过code也可以获取: using System; using System.Diagnostics; namespace Stack { class Program { static void Main(string[] a
阅读全文
Task.Result, Task.Wait(), Task.WaitAll(), Task.WaitAny()都会抛出AggregateException异常(链接)
摘要:下面几篇文章阐述了,当Task在运行过程中发生了未处理异常时,在调用Task.Result, Task.Wait(), Task.WaitAll(), Task.WaitAny()时,都会抛出AggregateException异常。 下面的文章章节,阐述了如何在调用Task.Wait(),Task
阅读全文
.NET的依赖注入框架Microsoft.Extensions.DependencyInjection,支持注入未绑定的泛型类(Unbound generic type)
摘要:C#的关键字typeof可以用来获取未绑定的泛型类/接口(Unbound generic type)的Type类实例,未绑定的泛型类/接口(Unbound generic type)就是指没有指定类型参数的泛型类/接口,如下代码所示: using System; namespace NET5Unbo
阅读全文
C#中is关键字和as关键字的一些文章(链接)
摘要:下面的文章阐述了C#中的is关键字: is operator (C# reference) is operator 下面的文章阐述了C#中的as关键字: as operator 下面的文章对C#中的is关键字和as关键字进行了比较: Is vs As operator keyword in C#
阅读全文
ADO.NET的数据库连接池(链接)
摘要:下面这篇文章,很详细地介绍了ADO.NET中的数据库连接池: ADO.NET入门教程(五) 细说数据库连接池 其中有提到如果连接池中的数据库连接数不够了,会导致SqlConnection连接超时,所以要合理地设置SqlConnectionStringBuilder.MaxPoolSize和SqlCo
阅读全文
C#中换行符\n正则表达式测试
摘要:新建一个.NET Core控制台项目,敲入下面代码: using System; using System.Text.RegularExpressions; namespace NetCoreRegularEscapeDemos { class Program { static void Main(
阅读全文