C#

A collection of 18 posts

C# 库

RabbitMQ : MassTransitA free, open-source distributed application framework for .NET.EasyNetQ - An easy .NET API for RabbitMQEasyNetQ An easy to use .NET API for RabbitMQAn easy .NET API for RabbitMQMike Hadlow

C# 基于 async 的超时策略

方式一:让方法支持 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 并行执行 如果不能修改原方法,可在外面包装一层。

C# 异常处理最佳实践

异常类型 异常一般分为系统异常 和 应用异常。系统异常有无法连接数据库,而应用异常是业务逻辑异常,比如授权失败。 在 C# 中异常基于 System.Exception,派生出 System.SystemException 和 System.ApplicationException。微软最初设计为 CLR 抛出的异常都继承自 System.SystemException,应用程序抛出的异常应当继承自 System.ApplicationException。但 .NET 框架类库(FCL) 没能很好地遵循这个原则。因此,目前存在的

C# HttpClient 添加 SSL 证书

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

使用 WebRequest 发送文件

以向微信接口上传媒体文件为例子,通过拼接 multipart/form-data 格式完成向请求附加文件。 public string UploadMedia(){ var accessToken = ""; var type = "image"; string filePath = "\path\to\file.png"; string fileName = "app.png"; var apiUrl

C#之函数

一、函数简介 【what】一段被封装起来且实现一定功能的代码 【why】提高编码效率,提高程序的可重用性、可读性、可维护性 【where】所有高级编程语言中 【when】 重复出现的相同或类似代码 具有独立逻辑功能的代码 【分类】 系统函数:由系统定义的函数,无需要定义直接使用(需导入对应命名空间) 自定义函数:由用户定义的函数,需先定义再调用 二、函数的定义 【组成】 函数签名(访问修饰符 返回值类型 函数名(参数列表) )+函数体 【语法】 访问修饰符