随笔分类 - [37]C#12
-
C# Assembly 与 Reflection
摘要:C# Assembly 与 Reflection 前言 前一阵子想利用闲余时间写一个 Unity 游戏的翻译工具,主要是用于翻译一些内嵌在代码中的文本,最初想偷懒看了一下网上的教学推荐说可以先利用DnSpy、ILSpy等工具反编译,直接修改反编译出来的代码中的字符串然后再重新编译,这样就只需要写一个 阅读全文
-
Polly是一种.NET弹性和瞬态故障处理库,可以通过不同策略处理和应对故障场景,主要分为两大类:被动策略和主动策略
摘要:Polly-故障处理和弹性应对很有一手 前言 对于运行中的系统,可以说百分百的小伙伴会经常遇见以下问题: 网络不通,突然又好了; 服务器宕机了; 调用服务接口超时了; 调用接口报错啦; 通讯信息发送失败需要重发; 以上只是列举了一些常遇到的问题,对于一些小项目可能简单的处理一下就OK了(比如重启或是 阅读全文
-
NET 6 Preview 3
摘要:NET 6 Preview 3 .NET 6 预览版 3 现已推出,其中包括许多对新的 ASP.NET Core 改进。以下是本次预览版的新内容: 更小的 SignalR、Blazor Server、MessagePack 脚本文件 启用 Redis 分析会话 HTTP/3 端点 TLS 配置 初步 阅读全文
-
C#中的 async await
摘要:C#中的 async await 为了更容易理解这个问题,我们举一个简单的例子:用异步的方式在控制台上分两步输出“Hello World!”,我这边使用的是Framework 4.5.2 class Program { static async Task Main(string[] args) { 阅读全文
-
C# Socket之TCP
摘要:1.C# Socket之TCP服务器 需要引用using System.Net.Sockets; using System.Net;两个命名空间; namespace TcpServer //服务器 { class Program { public static List<Client> clien 阅读全文
-
C#中对异步方法及异步lambda表达式
摘要:这篇文章的目的并不是系统地介绍C#中的await、async关键字,而是针对我遇到的一些问题进行记录。 背景 await / async C#中可以用async标识方法,表示这个方法是异步的。异步方法的返回值必须是void、Task或者Task<T>。例如: public static async 阅读全文
-
使用new Thread来新建一个线程,但新建线程需要内存和CPU上下文切换的开销,200,000个周期,销毁线程也需要100,000个周期
摘要:C#并行库(TaskParallelLibrary)用法小结 .NET 4.5并行库(TaskParallelLibrary) 也许C和C++的程序员刚刚开始写C#还习惯于new Thread来新建一个线程,但新建线程需要内存和CPU上下文切换的开销,200,000个周期,销毁线程也需要100,00 阅读全文
-
页面----调用本地程序
摘要:web页面调用本地程序 起因: 最近由于项目需要在web页面中调用本地部署的exe程序;进而对该功能实现做了对应了解;以及存在的问题进行记录。 要实现该功能就不得不说浏览器自定义协议;解决办法:那么它是什么呢? 浏览器自定义协议: 浏览器自定义协议,其实是微软提供 Asynchronous Plug 阅读全文
-
csharp-9
摘要:参考资料如下: https://docs.microsoft.com/zh-cn/dotnet/csharp/whats-new/csharp-9 C#9.0 .net5 C#的各种语法糖,多用就熟悉了。 C# 8.0 .net core 3.0+ C# 7.0 Vs2017 C# 6.0 特性 其 阅读全文
-
Thread、ThreadPool 和 Task
摘要:一些基础概念 线程(Thread)是操作系统能够进行运算调度的最小单位。它是进程中的实际运作单位,一个进程中可以启动多个线程,每个线程可以并行执行不同的任务。严格意义上来说,同一时间可以并行运行的线程数取决于 CPU 的核数。 根据线程运行模式,可以把线程分为前台线程、后台线程和守护(Daemon) 阅读全文
-
NET/C#分布式事务-System.Transactions
摘要:分布式事务一致性实现的方式总结 最近项目正在做重构,而这次重构实质上比原来更接近于SOA化和微服务的思想。对于我们金融交易来说,数据结果的准确性是重中之重。所以今天总结一下分布式事务的实现方法,下次组内周会给大家统一一下概念。 https://www.cnblogs.com/xiexj/p/8419 阅读全文
-
C# 调用Java的WebService的3种方式
摘要:C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用 关于soapheader调用,可以参考 C#调用Java的WebService添加SOAPHeader验证 1.问题描述 调用的Java的webservice strin 阅读全文
-
c#读取并异步写入文件
摘要:1.同步读取和写入 StreamReader objReader = new StreamReader("E://workspace//zzz//read.txt", Encoding.GetEncoding("utf-8")); string sLine = ""; ArrayList LineL 阅读全文
-
工作流
摘要:工作流 前言 前面学习了很多多线程和任务的基础知识,这里要来实践一下啦。通过本篇教程,你可以写出一个简单的工作流引擎。 本篇教程内容完成是基于任务的,只需要看过笔者的三篇关于异步的文章,掌握 C# 基础,即可轻松完成。 C#多线程(13):任务基础① C#多线程(14):任务基础② C#多线程(15 阅读全文
-
C# 4.0开始,泛型接口和泛型委托都支持协变和逆变
摘要:C#的协变和逆变吗 从C# 4.0开始,泛型接口和泛型委托都支持协变和逆变,由于历史原因,数组也支持协变。 里氏替换原则:任何基类可以出现的地方,子类一定可以出现。 协变(out) 协变:即自然的变化,遵循里氏替换原则,表现在代码上则是任何基类都可以被其子类赋值,如Animal = Dog、Anim 阅读全文
-
C#-BCL-一级指针和二级指针
摘要:追了多年的开发框架,你还认识指针吗? 一:背景 1. 讲故事 高级语言玩多了,可能很多人对指针或者汇编都淡忘了,本篇就和大家聊一聊指针,虽然C#中是不提倡使用的,但你能说指针在C#中不重要吗?你要知道FCL内库中大量的使用指针,如String,Encoding,FileStream等等数不胜数,如例 阅读全文
-
NET Attribute
摘要:.NET Attribute在数据校验上的应用 Attribute(特性)的概念不在此赘述了,相信有点.NET基础的开发人员都明白,用过Attribute的人也不在少数,毕竟很多框架都提供自定义的属性,类似于Newtonsoft.JSON中JsonProperty、JsonIgnore等 自定义特性 阅读全文
-
C#--Distinct
摘要:C#黔驴技巧之去重(Distinct) 前言 关于C#中默认的Distinct方法在什么情况下才能去重,这个就不用我再多讲,针对集合对象去重默认实现将不再满足,于是乎我们需要自定义实现来解决这个问题,接下来我们详细讲解几种常见去重方案,孰好孰歹自行判之。 分组 首先给出我们需要用到的对象,如下: p 阅读全文
-
在C#中调用SQL Server中存储过程
摘要:关于SQL Server中存储过程在C#中调用的简单示例 目录 0. 简介 1. 语法细节 2. 示例1:模拟转账 3. 示例2:测试返回DataTable 4. 源代码下载 shanzm-2020年5月3日 23:23:44 0. 简介 【定义】:存储过程(Stored Procedure) 是在 阅读全文
-
C#泛型-装箱拆箱和类型安全,Java泛型是语法糖
摘要:现在的netcore 3.1和最新的.netframework8早已经没有当初那个被人诟病的ArrayList了,但很巧这玩意不得不说,因为它决定了C#团队痛改前非,抛弃过往重新上路,上一段ArrayList案例代码。 public class ArrayList { private object[ 阅读全文