随笔- 672
文章- 2
评论- 325
阅读-
281万
随笔分类 - .Net Core
使用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,是一组依赖注入关系。还
阅读全文
在ASP.NET Core中将EF Core的日志通过NLog输出到控制台
摘要:首先定义一个实现了ILogger接口的类EFLogger,主要目的是将EF Core生成的Log信息输出到NLog: namespace AspNetCore8EFLogger.EF.Logger { public class EFLogger : ILogger { protected reado
阅读全文
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
阅读全文
如何在ASP.NET Core中避免JSON序列化的循环引用(链接)
摘要:下面的微软官方文档中介绍了,如何在ASP.NET Core中避免JSON序列化时发生循环引用,其中同时讲述了Json.NET和System.Text.Json如何避免循环引用: Related data and serialization 另外下面的微软官方文档中有提到,ASP.NET Core中默
阅读全文
.NET中的线程池ThreadPool(链接)
摘要:微软推荐在.NET中使用多线程开发时,都使用线程池,下面这篇微软文档介绍了.NET中的线程池类ThreadPool: ThreadPool Class 注意上面文档中的这句话: There is one thread pool per process. 也就是说,每个.NET进程(process)中
阅读全文
ADO.NET中的DBNull
摘要:在ADO.NET和EF Core中使用DbParameter/SqlParameter时,如果要传递数据库null值给数据库必须要使用DBNull,下面的微软文档介绍了DBNull: DBNull Class 其中这里有提到DBNull.Value.Equals方法的使用。 同时在下面这篇微软ADO
阅读全文
.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
阅读全文
Microsoft.Extensions.DependencyInjection会自动释放通过DI(依赖注入)创建的对象
摘要:Microsoft.Extensions.DependencyInjection中(下面简称DI),在调用ServiceProvider和IServiceScope对象的Dispose()方法时,也会自动调用ServiceProvider和IServiceScope对象通过DI创建的对象的Dispo
阅读全文
在CI/CD发布流水线中,使用dotnet publish命令编译.NET Core C#代码
摘要:在搭建CI/CD发布流水线(例如Jenkins流水线)发布.NET Core项目时,我们需要在流水线中使用dotnet publish命令来编译C#代码来生成DLL文件。 参考dotnet publish官方文档。 其中这里有说到,dotnet publish命令会隐式调用dotnet restor
阅读全文
使用DbContext.Set<TEntity>()方法也可以对数据库实体进行CRUD操作
摘要:我们可以用DbContext.Set<TEntity>()方法获取到一个DbSet<TEntity>对象,从而对泛型TEntity类所代表的数据库表进行CRUD操作。 例如我们现在有数据库表和TEntity类Person,那么下面两种写法是完全等价的: dbContext.Persons.Take(
阅读全文
c# 如何获取当前方法的调用堆栈(转载)
摘要:c# 调试程序时常常需要借助 call stack 查看调用堆栈,实际上通过code也可以获取: using System; using System.Diagnostics; namespace Stack { class Program { static void Main(string[] a
阅读全文