随笔分类 - .Net Core
ASP.NET Core和.NET控制台项目使用多配置类
摘要:我们可以在ASP.NET Core和.NET控制台项目中使用多个配置类,来读取同一个appsettings.json配置文件。 配置类ASP.NET Core项目.NET控制台项目 配置类 首先我们在ASP.NET Core项目和.NET控制台项目中创建两个配置类,FirstAppSettings和
阅读全文
执行在字符串中定义的C#代码
摘要:有时候我们需要执行在字符串中动态定义的C#代码。 在.NET Framework时代,我们可以使用CodeDomProvider.CompileAssemblyFromSource方法(需要在项目中安装NuGet包System.CodeDom),来执行一个字符串中的C#代码。但是该方法在.NET C
阅读全文
ASP.NET Core web API通过System.Text.Json配置接口返回Json的格式
摘要:我们可以通过System.Text.Json中的配置类,来控制ASP.NET Core web API中接口返回Json的格式。下面的代码示例我们使用JsonSerializerOptions配置类,来控制接口返回Json的属性名采用驼峰命名,并且忽略为null的属性。 using Microsof
阅读全文
使用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
阅读全文
浙公网安备 33010602011771号