在安装 Visual Studio 2019 一直提示某些组件安装失败,参考某些文章提示需要修改注册表的值,修改时发现拒绝访问。猜测是权限的问题导致的,进而无法安装 Visual Studio 2019 的某些组件。 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_IFRAME_MAILTO_THRESHOLD 拒绝访问。 找到“注册表编辑器”,并右击选择“以管理身份”
方式一:让方法支持 CancellationTokenSource public async Task Foo(CancellationToken token) { if(token.IsCancellationRequested) { // 已取消操作 } else { // 执行操作 } } var timeout = 1000; using (var cancelToken = new CancellationTokenSource(timeout)) { Foo(cancelToken.Token); } 方式二:Task.Delay 并行执行 如果不能修改原方法,可在外面包装一层。
Any 任意一项满足条件即可 All 所有项满足条件 Contains 任意一项相等 Any 和 Contains 区别在于传入的参数不一样,Any 可传 Lambda 语句,而 Contains 传入相同类型的对象。这意味着,在本地集合查询中 Contain 拥有更好的性能,而此时如果需要更高的性能可以考虑是 HashTable、HashSet 和 Dictionary 等单线程或多线程集合。
异常类型 异常一般分为系统异常 和 应用异常。系统异常有无法连接数据库,而应用异常是业务逻辑异常,比如授权失败。 在 C# 中异常基于 System.Exception,派生出 System.SystemException 和 System.ApplicationException。微软最初设计为 CLR 抛出的异常都继承自 System.SystemException,应用程序抛出的异常应当继承自 System.ApplicationException。但 .NET 框架类库(FCL) 没能很好地遵循这个原则。因此,目前存在的
using System.Net.Http; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; class Program { static async Task Main(string[] args) { var certPath = $"{AppDomain.CurrentDomain.BaseDirectory}apiclient_cert.p12"; var certPassword
接收微信支付的“支付结果通知”时,POST 的 body 为 XML 内容,ASP.NET Core 是无法直接解析的。 可以在 Action 中使用 Stream 来接收: using (var reader = new StreamReader(Request.Body)) { var body = await reader.ReadToEndAsync(); };