随笔- 672
文章- 2
评论- 325
阅读-
281万
随笔分类 - .Net Core
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回收内存的百分比
摘要:.NET中,可以通过run-time configuration中的High memory percent配置项,来配置.NET GC回收内存的百分比: High memory percent .NET的run-time configuration settings介绍: .NET Core run
阅读全文
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
阅读全文
C#中,代码能不能访问到private或protected的成员,和当前代码是不是在类型(类、结构体)中有关,和当前代码是不是在类型(类、结构体)的对象实例中无关
摘要:在C#中,private和protected访问修饰符被广泛应用,微软对它们的定义如下: private:只有同一 class 或 struct 中的代码可以访问该类型或成员。 protected:只有同一 class 或者从该 class 派生的 class 中的代码可以访问该类型或成员。 相信大
阅读全文
使用C#中的default关键字为类型提供默认值(链接)
摘要:C#中的default关键字可以为类型提供默认值,下面是微软的官方文档,对其进行了介绍: Default values of C# types (C# reference) default value expressions (C# reference)
阅读全文
IDisposable和IAsyncDisposable接口(链接)
摘要:关于IDisposable接口,我相信大家都很熟悉了,下面是微软官方文档的介绍: IDisposable Interface Implement a Dispose method 在C# 8.0中,微软引入了IAsyncDisposable接口,下面是微软官方文档的介绍: IAsyncDisposa
阅读全文