C# 备忘
望天hous
虚心学习
展开
-
C#中客户端直接引用服务端Proto文件
gRPC 客户端是从 .proto 文件生成的具体客户端类型。具体 gRPC 客户端具有转换为 .proto 文件中 gRPC 服务的方法。到此配置完成,然后就和服务共用一份protocol文件。下一步打开【服务引用】 控制面板。选择grpc选项,然后继续。原创 2024-08-19 10:49:30 · 324 阅读 · 0 评论 -
C# 中 Grpc服务端调用客户端方法
首先,在.proto文件中定义一个双向流的服务接口。原创 2024-08-19 10:41:28 · 441 阅读 · 0 评论 -
C#中压缩文件夹,及其内容
压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作,调用时候最好用 DoCompressDirectoryInfo方法。下面分两个版本进行实现。原创 2024-07-22 15:56:15 · 308 阅读 · 0 评论 -
C# 中,使用 LINQ 示例 备忘
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。花色包含 13 个值。通常情况下,你可能会立即考虑创建一个 Card 类,然后手动填充一组 Card 对象。通常的方式,使用 LINQ 创建一副扑克牌更加简捷。可以创建两个序列来分别表示花色和点数,而非创建 Card。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。通常一副扑克牌包含四种花色,每种。原创 2024-07-11 17:13:14 · 273 阅读 · 0 评论 -
C# 中使用模式匹配 备忘
在使用正则表达式匹配字符串时,正则表达式自己就是一个模式,而对字符串使用这段正则表达式进行匹配的过程就是模式匹配。而在代码中也是同样的,我们对对象采用某种模式进行匹配的过程就是模式匹配。某些类型包含 Deconstruct 方法,该方法将其属性解构为离散变量。当 x 或 y 为 0(但不是两者同时为 0)时,前一个开关中的弃元模式匹配。如果这些情况都不匹配,则 switch 表达式将引发异常。用位置模式检查对象的属性并将这些属性用于模式。下面的方法使用位置模式来提取 x 和 y 的值。原创 2024-07-09 18:03:35 · 267 阅读 · 0 评论 -
c#如何判断一个类型是否为数值类型,请给出通用方法
用于判断类型是否为内置的基元类型,同时排除了布尔类型和字符类型。如果一个类型既是内置的基元类型,又不是布尔类型或字符类型,则被认为是数值类型。属性来判断一个类型是否为内置的数值类型。这种方法更加通用,因为它会考虑到未来可能添加的新的数值类型。是的,除了手动列举全部数值类型外,还可以使用。值,表示该类型是否为数值类型。原创 2024-02-24 10:32:30 · 903 阅读 · 0 评论 -
C# 中操作注册表
【代码】C# 中操作注册表。原创 2022-11-19 17:36:50 · 433 阅读 · 0 评论 -
C# 开启线程 通用类
【代码】C# 开启线程 通用类。原创 2022-09-08 17:24:37 · 181 阅读 · 0 评论 -
C# 判断目标是文件夹还是目录(目录包括磁盘)通用方法
【代码】C# 判断目标是文件夹还是目录(目录包括磁盘)通用方法。原创 2022-09-08 17:07:06 · 839 阅读 · 0 评论 -
C# 通用方法MD5计算
MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,原创 2022-08-12 13:28:41 · 1549 阅读 · 0 评论 -
C# 中AES 加密和解密通用方法
要编写AES算法,首先了解AES算法原理,AES算法是一个对称分组密码算法。对于三种不同密钥长度的 AES 算法,分别称为“AES-128”、“AES-192”、“AES-256”。 从AES的加密和解密的流程图中可知:解密算法的每一步分别对应加密算法的逆操作。加解密所有操作的顺序正好是相反的,正是这样才保证了算法的正确性。加解密中每轮的密钥分别由种子密钥经过密钥扩展算法得到,算法中16字节的明文、密文和轮子密钥都以一个4x4的矩阵表示。...原创 2022-08-12 13:22:22 · 12424 阅读 · 3 评论 -
C# 中异步互斥锁
C# 实现异步锁,比较方便使用。 内部使用 互斥量 semaphoreslim类原创 2022-05-15 11:32:29 · 912 阅读 · 0 评论 -
Mongodb5.0开启认证服务
先创建数据库和角色db.createUser({user:“wx”,pwd:“w123”,roles:[{role:“dbAdmin”,db:“数据库名字”}]})db.auth(“root”,“root”) 验证一下,改成自己设置的用户名和密码可以在安装本地服务修改配置文件。security:authorization: enabled注意格式,哈哈。和重启服务。好了没报错就恭喜你完成了。MongoDB 数据库默认角色1.数据库用户角色:read、readWrite2.数据库管理角原创 2022-04-16 14:49:47 · 1603 阅读 · 0 评论 -
C# 使用 ServiceStack.Redis链接哨兵redis服务端
Redis 哨兵Redis Sentinel是运行高可用性 Redis 配置的官方建议,通过运行许多额外的 redis sentinel 进程来主动监控现有的 Redis 主从实例,以确保它们都按预期工作。如果通过共识确定主服务器不再可用,它将自动故障转移并将其中一个复制的从服务器提升为新的主服务器。哨兵还维护可用 redis 实例的权威列表,为客户端提供中心存储库以发现他们可以连接的可用实例。对 Redis Sentinel 的支持可用于RedisSentinel侦听可用 Sentinel 的类,以获原创 2022-03-09 16:17:27 · 1998 阅读 · 0 评论 -
C#中使用Spring.core进行依赖注入
所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间依赖关系的管理。 依赖注入通常有两种:设值注入、构造注入。同时在net平台下有spring.core 通过配置文件进行依赖注入,比较方便。spring.core 的依赖注入方式有:属性依赖注入构造方法依赖注入静态工厂依赖注入实例工厂依赖注入使用基本步骤一: 安装nuget包 -install Spr原创 2022-01-19 15:45:31 · 868 阅读 · 0 评论 -
C#中通用方法 JWT生成Tocken 备忘
public static string GenerateJWTTocken(string secret, Dictionary<string, object> payload) { string str = ""; IJwtAlgorithm algorithm = new HMACSHA256Algorithm(); IJsonSerializer serializer = new JsonNetSe.原创 2021-11-14 17:26:18 · 971 阅读 · 0 评论 -
C# 数据和buf相互转化 通用方法 备忘
/// <summary> /// 交换连个类型的值 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t1"></param> /// <param name="t2"></param> public stat...原创 2021-10-21 11:37:53 · 370 阅读 · 0 评论 -
C#中实现AES算法 备忘
public class Protector { //盐 private static readonly byte[] salt = Encoding.Unicode.GetBytes("7BANANAS"); //迭代 private static readonly int iterations = 2000; public static string Encrypt(string plainText, string原创 2021-08-20 10:20:48 · 352 阅读 · 0 评论 -
C# 写一个标准XML文件方法和压缩算法 备忘
private static void WorkWithXMl() { string xmlFile = Path.Combine(Environment.CurrentDirectory, "streams.xml"); //创建一个文件 FileStream fileStream = File.Create(xmlFile); XmlWriter xmlWriter = XmlWriter..原创 2021-08-17 15:06:19 · 504 阅读 · 0 评论 -
C#中的File内部信息 备忘
获取程序根路径,临时目录等一些信息: private static void TestFileStream() { Console.WriteLine("{0,-33} {1}", "Path.PathSeparator", Path.PathSeparator); Console.WriteLine("{0,-33} {1}", "Path.DirectorySeparatorChar", Path.DirectorySeparatorC原创 2021-08-10 16:30:47 · 101 阅读 · 0 评论 -
C# Vs2019 发布跨平台程序包,使用net5.0框架
net5.0 不是LTS版本建议以后微软除了可以使用 net6.0 。根据官网上的及其民间说法 net5.0 实际就是netcore的 后续, 传统的net framework 将不再更新(已死)然后本节就讲述一下怎么用vs2019 使用net5.0 发布一个跨平台应用,本示例会用到大量图片说明,1:使用net5.0 新建一个控制台程序,这里不会自行百度呗2: 右键控制台,选择发布3:选择发布选项,然后开始配置发布文件4:然后就是跟着向导点点就行了5: 重点,在完成上述操作以后会出原创 2021-07-27 15:33:52 · 4118 阅读 · 0 评论 -
C# 大帧头数据转化 备忘
public static class BigEndianHelper { // 翻转字节顺序 (16-bit) public static UInt16 ReverseBytes(UInt16 value) { return (UInt16)((value & 0xFFU) << 8 | (value & 0xFF00U) >> 8); } ...原创 2021-07-13 14:04:09 · 129 阅读 · 0 评论 -
C#程序捕获未处理异常信息 备忘
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);错误触发事件static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { string str = Form.原创 2021-07-08 16:52:22 · 270 阅读 · 0 评论 -
C# 拷贝文件夹方法备忘
/// <summary> /// 拷贝文件夹及其文件下的所有文件 /// </summary> /// <param name="SourcePath">要Copy的文件夹</param> /// <param name="DestinationPath">要复制到哪个地方</param> /// <param name="overwriteexi.原创 2021-07-06 16:00:38 · 472 阅读 · 0 评论 -
C# 的9.0 语法 匹配模式 案例
internal static void TestMatch() { #region Test1 object[] objArr = { new Per() { Name = "1" }, new Person() { Name = "2" }, new Stuend(), new Account() { Name = "4" } }; foreach (object obj in objArr) ...原创 2021-06-29 14:20:40 · 144 阅读 · 0 评论 -
C#中的 索引器 简单案例 备忘
public class Per { public string Name { get; set; } private Per[] Child { get; set; } public Per() { } //定义索引 public Per this[int id] { get { if ..原创 2021-06-28 17:09:42 · 180 阅读 · 0 评论 -
C# 递归实现 斐波那契数列的函数方法 备忘
//0 1 1 2 3 5 8 13 21 34 65 ... private static int FibImperative(int n) { if (n == 1) { return 0; } else if (n == 2) { return 1; } .原创 2021-06-21 09:02:40 · 141 阅读 · 0 评论