随笔分类 - .Net Core
在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
阅读全文
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#
阅读全文
如何把ASP.NET Core应用程序做成为Windows Service服务(转载)
摘要:如果你的ASP.NET Core服务最后会安装到Windows上运行,那么你肯定不想每次都开个控制台窗口来运行你的服务,因为这样每次开机你都需要手动打开你的服务,其次控制台窗口也容易被用户关掉,你的服务会意外地被终止运行。使用下面的方法可以快速地把你的ASP.NET Core程序做成Windows
阅读全文
通过run-time configuration配置.NET GC使用的最大内存和GC回收内存的百分比
摘要:.NET中,可以通过run-time configuration中的Heap hard limit和Heap hard limit percent配置项,来配置.NET GC使用的最大内存: Heap hard limit Heap hard limit percent How to set the
阅读全文
HTML网页中,img标签和Ajax请求是支持跳转(Redirect)的
摘要:我们知道在HTTP请求中,状态码301和302代表跳转,也叫重定向(Redirect)。 301-Moved Permanently:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。 302-Found:临时
阅读全文
为什么.NET Core项目中,在appsettings.json配置文件中定义的配置项,会出现乱码
摘要:有时候在.NET Core项目中的appsettings.json配置文件中,如果我们定义了包含中文值的配置项,当配置文件被读取到项目的代码中后,会出现乱码。 例如,我们在ASP.NET Core项目中定义一个appsettings.Development.json配置文件,并在其中定义了一个包含中
阅读全文
ADO.NET的数据库连接池(链接)
摘要:下面这篇文章,很详细地介绍了ADO.NET中的数据库连接池: ADO.NET入门教程(五) 细说数据库连接池 其中有提到如果连接池中的数据库连接数不够了,会导致SqlConnection连接超时,所以要合理地设置SqlConnectionStringBuilder.MaxPoolSize和SqlCo
阅读全文
Microsoft.Extensions.DependencyInjection中的Transient依赖注入关系,使用不当会造成内存泄漏
摘要:Microsoft.Extensions.DependencyInjection中(下面简称DI)的Transient依赖注入关系,表示每次DI获取一个全新的注入对象。但是使用Transient依赖注入关系时,最好要配合IServiceScope来一起使用,因为通过Transient依赖注入关系创建
阅读全文
Microsoft.Extensions.DependencyInjection的Singleton依赖注入关系,只是对于同一个ServiceProvider是单例的
摘要:在Microsoft.Extensions.DependencyInjection中,Singleton代表单例依赖注入,但是这个单例也只是对于相同的ServiceProvider对象而言。 假设我们的项目中有接口IPeople和实现类People,它们之间的依赖注入关系是Singleton的。 新
阅读全文
ASP.NET Core MVC中,如何将视图文件生成的html代码通过字符串返回
摘要:下面的方法可以在ASP.NET Core MVC中,将视图文件生成的html代码通过字符串返回。 首先定义一个静态类ControllerExtensions,里面包含Controller的扩展方法RenderViewAsync,用于返回视图文件生成的html代码: using Microsoft.A
阅读全文
C#中换行符\n正则表达式测试
摘要:新建一个.NET Core控制台项目,敲入下面代码: using System; using System.Text.RegularExpressions; namespace NetCoreRegularEscapeDemos { class Program { static void Main(
阅读全文
.Net Core DI依赖注入:一个接口注入多个实现类(转载)
摘要:方式一、默认就可以注入多个实现类例如接口IShow,注入ShowA和ShowB两个实现类: services.AddTransient<IShow, ShowA>(); services.AddTransient<IShow, ShowB>(); 获取的时候默认是获取到最后一个,如下所示: 可以使用
阅读全文
C#不允许将操作符重载方法定义为泛型方法(转载)
摘要:在C#中,不允许将操作符重载方法定义为泛型方法,看看下面这篇贴子: 问 I am trying to implement a generic operator like so: class Foo { public static T operator +<T>(T a, T b) { // Do s
阅读全文
C#数组的微软官方文档(链接)
摘要:下面这篇微软官方文档,介绍了C#的数组: Arrays (C# Programming Guide) 在其中的子章节中,有介绍交错数组(jagged array): Jagged Arrays (C# Programming Guide) 数组都继承自Array类,参考下面的文档: Array Cl
阅读全文
在C#中,override的成员仍然是virtual的
摘要:我们知道在C#中,基类声明为virtual和abstract的成员,在子类中可以被override,也就是重写。其实被加上override关键字的成员,它本身也是virtual的,可以继续被子类的成员override。 新建一个.NET Core控制台项目,敲入下面的代码: using System
阅读全文
C#中,添加值类型和引用类型到List<T>集合有什么不同
摘要:新建一个.NET Core控制台项目,敲入下面代码,我们来测试将值类型和引用类型加入List<T>集合,有什么不同: using System; using System.Collections.Generic; namespace NetCoreList { //类People,是引用类型 cla
阅读全文
浙公网安备 33010602011771号