- 博客(226)
- 资源 (62)
- 收藏
- 关注
原创 C# 中使用Hash用于密码加密
通过一定的哈希算法(典型的有MD5,SHA-1等),将一段较长的数据映射为较短小的数据,这段小数据就是大数据的哈希值。他最大的特点就是唯一性,一旦大数据发生了变化,哪怕是一个微小的变化,他的哈希值也会发生变化。比如,从网络上下载某个文件,只要把这个文件原来的哈希值同下载后得到的文件的哈希值进行对比,如果相同则表示两个文件完全一致,下载过程没有损坏文件。哈希值的作用:哈希值,即HASH值,是通过对文件内容进行加密运算得到的一组二进制值,主要用途是用于文件校验或签名。
2025-01-23 10:05:43
259
原创 C# 中mysql数据库,已经在原有数据库升级数据库脚本,去管理可以一次,和多次执行的,nuget包
DbUp和是较为流行的选择,适合需要灵活性和控制力的场景。适合已经使用EF Core的项目。是一个轻量级的选择,适合简单的迁移需求。根据你的项目需求选择合适的工具,可以大大简化数据库升级的管理工作。
2025-01-06 15:28:46
905
原创 C#中在实现多语言遇到问题
请注意,虽然上述列表包含了许多常见的语言和区域设置,但并非所有可能的组合都是有效的或受支持的。这些 CultureInfo 名称遵循 ISO 639-1(语言代码)和 ISO 3166-1(国家/地区代码)的标准,用于在.NET应用程序中表示特定的文化和区域设置。虽然你可以为 CultureInfo 的 Name 属性赋值任何符合上述格式的字符串,但并不是所有可能的组合都是有效的或受支持的。因此,最好使用.NET框架提供的预定义区域性名称,或者确保你设置的区域性名称在你的目标环境中是有效和受支持的。
2024-12-31 15:40:40
1105
原创 C# 中使用 MassTransit
在生产环境中使用 MassTransit 时,通常需要进行详细的配置,包括设置连接字符串、配置队列、配置消费者、处理重试和错误队列等。以下是一个完整的示例,展示了如何在 ASP.NET Core 应用程序中配置 MassTransit,包括请求/响应模式和事件模式,并使用依赖注入。
2024-12-25 17:10:52
908
原创 C# 和 go 关于can通信得 整理
在C#中开发CAN(Controller Area Network)通信接口时,确实有一些现成的NuGet包可以简化你的开发工作。这些库通常提供了与CAN硬件接口通信所需的基本功能,如发送和接收CAN消息。这些库都提供了基本的CAN通信功能,你可以根据你的具体需求选择合适的库。如果你使用的是特定的CAN硬件,建议查看该硬件的官方文档或示例代码,因为某些硬件可能有特定的驱动程序或库支持。是的,Go语言也有类似的库来支持CAN通信。如果你需要与特定的硬件控制器进行交互,可能需要查找针对该硬件的专用Go包。
2024-12-13 16:26:00
921
原创 go 怎么判断一个文件存在,并且如果存在则读取文件,并json反序列化 string切片
在 Go 语言中,你可以使用标准库中的 os 和 encoding/json 包来检查文件是否存在、读取文件内容并将其反序列化为 JSON 格式的字符串切片。注意:在 Go 1.16 及之后的版本中,建议使用 os 和 io 包代替 ioutil,但 ioutil.ReadFile 仍然可用。使用 json.Unmarshal 函数将文件内容(JSON 格式)反序列化为 stringSlice。这样,你就可以在 Go 中检查文件是否存在,读取文件内容,并将其反序列化为一个字符串切片了。
2024-12-13 09:41:42
534
原创 go 中线程安全map
这些第三方包提供了更加友好和易用的 API,使得你在使用线程安全的映射时不需要进行显式的类型断言。你可以根据自己的需求选择适合的包来使用。在选择线程安全的映射实现时,性能和社区支持都是非常重要的因素。性能: 如果你主要关注性能,尤其是在处理大量数据和频繁的读写操作时,通常是最佳选择。受欢迎程度在社区中拥有最广泛的接受度和使用率,如果你更关注稳定性、易用性和社区支持,它可能是一个更好的选择。有序映射: 如果你需要一个高性能的有序映射,是一个不错的选择。根据你的具体需求,可以选择最适合你的包。
2024-12-10 17:02:14
451
原创 Go-MediatR:Go语言中的中介者模式
import ("fmt""reflect""sync"return nilreturn nil根据消息码创建不同的消息体:我们为每个消息码创建了一个唯一的标识符,并在解析时生成不同的消息体。自动化加载解析器:我们使用反射来自动加载所有实现了接口的解析器,而不需要手动填充。这样,即使在后期消息很多的情况下,我们也可以通过扩展解析器来轻松应对新增的消息类型。
2024-11-29 16:44:38
878
原创 C# 中 发送HTTP请求 实现Ajax功能
Ajax技术的核心及其在jQuery中的使用,包括GET和POST请求的实现,以及Ajax轮询请求的工作原理。通过实例展示了如何使用jQuery.Ajax进行HTTP请求,与后端接口交互,以及处理JSON数据。同时还提到了跨域问题和轮询请求中停止条件的设定。在C#中,确实存在多个可用于发送HTTP请求的NuGet包。这些包提供了丰富的功能,使得在C#应用程序中发起HTTP请求变得简单且高效。
2024-11-01 14:17:19
494
原创 浅谈mysql【8.0】链接字符串
禁用 SSL 加密,适用于不关心安全的场景。: 允许客户端从服务器获取公钥,适用于 MySQL 8.0 及以上版本的认证插件。: 允许在 SQL 查询中使用用户变量,适用于需要使用用户变量的场景。如果只使用基本的连接字符串,而不配置和这些参数,会有几个显著的区别。安全性: 如果不配置sslmode,将可能在不安全的环境中传输数据,但可能不影响连接的可用性;但如果要求使用 SSL 且未配置,连接会失败。公钥处理: 不配置。
2024-10-31 09:26:41
947
原创 C# 中使用Topshelf 注意事项
在决定使用还是时,您应充分考虑服务的功能需求,安全性要求以及对系统资源的访问需求。更适合需要高权限的服务,而则在需要增强安全性的情况下更加合适。当设计和部署服务时,这两种配置方式可能会显著影响服务的功能与安全性。综上所述,如果是本地自己安装服务 最好使用 RunAsLocalSystem 方法比较合适,给自己托管,安装的服务最大权限。
2024-10-29 10:11:27
1018
原创 C# 中使用EasyCacheing
在 C# 中,是一个提供多种缓存机制的开源库,它支持内存缓存、分布式缓存(如 Redis、Memcached 等)以及多种持久化方案。它的主要目的是简化缓存的使用,让开发者能够更容易地集成和使用缓存。
2024-10-16 08:45:10
1189
原创 C# 中实现安全集合Concurrent 支持删除指定元素的
ConcurrentBag实现了IProducerConsumerCollection接口,该接口主要用于生产者消费者模式下,可见该类基本就是为生产消费者模式定制的。ConcurrentBag对外提供的方法没有List那么多,但是同样有Enumerable实现的扩展方法。Equals(Object) 确定指定的 Object 是否等于当前的 Object。(继承自 Object。(继承自 Object。CopyTo 从指定数组索引开始,将 ConcurrentBag 元素复制到现有的一维 Array 中。
2024-10-15 14:02:21
902
原创 godotenv拜读
应用提倡将配置存储在环境变量中。任何从开发环境切换到生产环境时需要修改的东西都从代码抽取到环境变量里。但是在实际开发中,如果同一台机器运行多个项目,设置环境变量容易冲突,不实用。godotenv库从.env文件中读取配置, 然后存储到程序的环境变量中。在代码中可以使用读取非常方便。这是一个比较简单的开源项目,目前拜读了,关于加载配置文件,但是parse.go 文件写的比较复杂, 自己手痒仿制一个。github地址:https://github.com/joho/godotenv。
2024-09-11 16:33:35
499
原创 Go 语言中SplitByChars 方法
在 Go 语言中,标准库中的 strings 包并没有直接提供一个按照多个字符分割字符串的函数,类似于 C# 中的 split() 函数,该函数可以指定多个分隔符。但是,你可以通过一些组合函数和逻辑来实现相同的效果。
2024-09-11 15:02:55
314
原创 win 中P处理 添加应用程序到防火墙白名单中
当防火墙使用白名单策略时,管理员需要明确指定哪些IP地址、端口、应用程序或服务是被信任且允许通过的。其他未列在白名单中的对象将被防火墙阻止,从而提高网络的安全性。但也需要谨慎维护,确保白名单列表是准确、完整且及时更新的,以免无意中阻止了合法的访问。防火墙白名单是一种访问控制策略,用于在防火墙上指定允许访问网络或资源的对象列表。在白名单中列出的对象将被允许通过防火墙,而不在白名单中的对象将被阻止访问。总之,防火墙白名单是一种安全措施,用于明确列出被授权的对象,只允许这些对象通过防火墙,而其他对象则被阻止。
2024-08-27 08:26:37
211
原创 MaterialDesign 5.0使用报错 IOException: 找不到资源“themes/materialdesigntheme.defaults.xaml”
MaterialDesign 5.0使用报错 IOException: 找不到资源“themes/materialdesigntheme.defaults.xaml”上述两种方式都可以导入MaterialDesig 修改是【App.xaml】文件,其中x:Class=“WpfApp_demo.App” 需要改成自己项目的。
2024-08-23 08:57:17
385
原创 C# 中Linq探讨 Or条件拼接
然而,如果你需要根据不同的条件动态地构建查询(例如,用户可能只输入了名字,或者只输入了年龄范围,或者两者都输入了),那么 PredicateBuilder 就变得非常有用。PredicateBuilder 的主要用途是构建复杂的逻辑表达式,特别是当你需要动态地添加条件时(例如,在运行时根据用户的输入构建查询)。虽然没有一个特定的NuGet包专门用于拼接LINQ的OR条件,但你可以使用PredicateBuilder这样的模式或直接在查询中编写条件来达成目的。方法一:使用PredicateBuilder。
2024-08-20 17:05:19
702
原创 C#中客户端直接引用服务端Proto文件
gRPC 客户端是从 .proto 文件生成的具体客户端类型。具体 gRPC 客户端具有转换为 .proto 文件中 gRPC 服务的方法。到此配置完成,然后就和服务共用一份protocol文件。下一步打开【服务引用】 控制面板。选择grpc选项,然后继续。
2024-08-19 10:49:30
421
原创 C# 中引用类型的探讨
将其保留在方法外部。为此,请使用 ref 或 out 关键字传递参数。为简单起见,下面的示例使用 ref。用对象的数据,例如类成员的值。但是,不能更改引用本身的值;例如,不能使用相同引用为新对象分配内存,并。引用类型的变量不直接包含其数据;它包含对其数据的引用。如果按值传递引用类型参数,则可能更改属于所引。如果方法中不希望更改引用类型指向,可以使用关键字 in。
2024-08-06 17:54:35
230
原创 C# 中读取byte[]转化成数字
读取网络字节流时候,使用BinaryReader的ReadInt32()方法时候发生了预期外的结果,查阅了微软文档发现是小端( )模式问题,可以通过System.Net.IPAddress.HostToNetworkOrder或BinaryPrimitives.ReadInt32BigEndian 方式来解决。以下示例代码,提供参考。
2024-08-05 16:02:43
464
原创 C#中压缩文件夹,及其内容
压缩包格式,本文主要用于说明如何使用代码 文件或文件夹压缩为 zip压缩包及其解压操作,调用时候最好用 DoCompressDirectoryInfo方法。下面分两个版本进行实现。
2024-07-22 15:56:15
411
原创 C# 中用 TopShelf服务创建和延迟运行
以下是一个简单的示例,展示了如何使用 TopShelf 创建一个服务,并在服务启动后延迟执行某些操作。你可以通过 Topshelf 提供的命令行工具来安装、卸载和启动服务。你可以通过这种方式来配置 Topshelf 服务,使其符合你的需求。这样一来,当系统启动后,服务会在一段时间后自动启动,而不是立即启动。在这个例子中,我创建了一个简单的定时器来模拟服务的持续运行。此外,根据你的具体需求,你可能需要调整服务的逻辑和配置。如果你想使用 Topshelf 来配置一个延迟自动启动类型的服务,可以通过设置。
2024-07-19 09:10:26
577
转载 C# SelectMany 的使用
以下示例定义了一个名为 GetVowels 的方法,该方法返回参数数组中的所有元音。数组,可通过可变数量的自变量来调用方法。使用 params 关键字标记的参数必须为数组类型,并且必须是该方。调用方不需要为包含 params 修饰符的形参提供任何实参。有时,向方法指定精确数量的自变量这一要求是受限的。通过传递引用类型的参数,可以更改引用本身的值,而不是其单个元素或字段的值。向该方法传递相应类型的单独自变量的逗号分隔列表。传递相应类型的数组,该类型包含所需数量的元素。法的参数列表中的最后一个参数。
2024-07-12 15:14:38
134
原创 C# 中,使用 LINQ 示例 备忘
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。花色包含 13 个值。通常情况下,你可能会立即考虑创建一个 Card 类,然后手动填充一组 Card 对象。通常的方式,使用 LINQ 创建一副扑克牌更加简捷。可以创建两个序列来分别表示花色和点数,而非创建 Card。对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。通常一副扑克牌包含四种花色,每种。
2024-07-11 17:13:14
302
原创 C# 中使用模式匹配 备忘
在使用正则表达式匹配字符串时,正则表达式自己就是一个模式,而对字符串使用这段正则表达式进行匹配的过程就是模式匹配。而在代码中也是同样的,我们对对象采用某种模式进行匹配的过程就是模式匹配。某些类型包含 Deconstruct 方法,该方法将其属性解构为离散变量。当 x 或 y 为 0(但不是两者同时为 0)时,前一个开关中的弃元模式匹配。如果这些情况都不匹配,则 switch 表达式将引发异常。用位置模式检查对象的属性并将这些属性用于模式。下面的方法使用位置模式来提取 x 和 y 的值。
2024-07-09 18:03:35
306
原创 C#中 有内置环形链表吗,如果有请给出使用示例代码
这段代码演示了如何创建一个简单的环形链表类,并实现了基本的插入、删除和遍历操作。请注意,为了形成环形链表,每次在添加新节点或删除节点后,需要更新尾节点的Next指向头节点,以保持链表的环形结构。在C#中,并没有内置的环形链表数据结构,但是可以通过自定义实现来模拟环形链表的功能。一种常见的方法是创建一个环形链表的节点类,并在链表类中实现插入、删除、遍历等操作。
2024-07-09 17:56:48
188
原创 C#中关于表达式的构建示例,备忘
中的计算表达式提供一种用于编写计算的便捷语法,可以通过使用控制流构造和绑定对这些计算进行排序和组合。根据计算表达式的类型,可以将其视为表示 monad、monoids、monad 转换器和 applicative functor 的一种方式。但是,与其他语言(例如 Haskell 中的 do-notation)不同,它们不依赖于单一抽象,也不依赖宏或其他形式的元编程来实现上下文相关的便捷语法。以下程序使用 Expression 类根据不同的 x 和 y 值计算表达式 x * (y + 2)。
2024-07-03 16:49:48
293
原创 C#如何在异步任务中调用及取消一个长时间运行的同步方法
要想使用 Thread,需要在程序中引用 System.Threading 命名空间,然后再提供一个供线程调度的方法,这个方法是通过 Thread 中的 ThreadStart 委托代理的,下面的代码展示了如何创建线程。假设在多线程的代码中包含了多段的 INSERT 数据库类的方法,那么你调用 Abort 很可能就只能执行了一部分 INSERT 语句,而一部分没执行 导致数据库的这段数据不完整。Abort虽然可以立即强制终止线程,但是带来的危险也是明显的,所以我们一定要知道代码的具体作用,用起来会安心。
2024-05-23 15:31:43
315
原创 Rx.Net 第四章
本章所涵盖的内容几乎会在你创建的每个可观察对象管道中用到:所有可观察对象都实现IObservable接口。要从符合事件模式的事件中创建一个可观察对象(使用的委托接收一个sender和EventArgs),请使用FromEventPattern操作符。您可以使用FromEventPattern操作符的重载,它允许您传递一个对象并指定要从中创建可观察对象的事件的名称。要创建一个只发出一个通知的可观察对象,可以使用observable . return操作符。下一章将扩展你关于创建可观察对象的知识。
2024-04-19 15:42:23
769
原创 Windows中,应用添加到防火墙白名单里面批处理命令
在 Windows 中,你可以使用 PowerShell 脚本或者批处理命令来将程序添加到防火墙白名单中。将上述代码保存为 .bat 文件,然后以管理员身份运行该批处理文件。这将在防火墙中添加一个新规则,允许指定程序的入站连接。将上述代码保存为 .ps1 文件,然后运行 PowerShell 窗口,使用管理员权限运行该脚本。如果你更倾向于使用批处理命令,你可以使用。
2024-04-19 13:33:04
810
原创 Rx.Net 第三章 linq介绍
匿名类型简化了查询,因为它提供了类型的内联创建,您可以使用这些类型来存储查询结果,这些结果应该只在一个范围内可见。您可以使用LINQ进行过滤集合的简单查询,以及涉及将两个集合连接在一起的更复杂的查询。在c#中,您使用方法链技术来构建特定于领域的语言(dsl)来表达您所编程的领域。LINQ使查询集合变得超级简单,它的抽象允许对不同的底层存储库执行相同的查询。延迟执行允许您创建在使用查询结果时执行的查询,而不是在创建查询时执行。要完成方法链接,使用流畅的接口和扩展方法。
2024-04-16 17:56:20
432
原创 RX.Net 第二章 hello Word
要在应用程序中正确使用Rx并使用所有丰富的操作符,您需要学习它们以及将它们组合在一起的技术,这就是本书的全部内容。本章提供了一个简单而强大的例子,你可能在过去做过(或者将来可能会做),并以两种方式解决它:传统的事件风格和Rx风格的事件处理流。您可以在任何类型的应用程序中使用Rx WPF桌面客户端,asp.net网站或简单的控制台应用程序等。Rx提供了许多查询操作符,例如使用Where操作符进行过滤,使用Select操作符进行转换等等。在下一章中,你将学习函数式的思维方式,它与。大多数情况下,您将安装系统。
2024-04-16 15:17:27
499
原创 RX.Net 第一章
在响应式编程中,您使用时变变量来保存值,这些值通过对其依赖项发生的变化做出反应而更改。在下一章中,您将有机会构建第一个Rx应用程序,并将其与用传统的事件处理方式编写相同的应用程序进行比较。在响应式系统中,Rx被放置在消息驱动槽中,就像您希望处理应用程序接收到的消息的方式一样。异步性是响应性最重要的部分之一,因为它允许您更好地使用资源,从而使应用程序响应更快。可观察对象可以发出带有有效负载的通知,在其完成时发出通知,并在出现错误时发出通知。可观察对象是通知的生产者,观察者订阅它来接收这些通知。
2024-04-15 16:30:52
183
原创 WPF 示例自定义的 DataTemplateSelector
在这个示例程序中,我们定义了两种不同的 DataTemplate (Template1 和 Template2),然后创建了一个 CustomDataTemplateSelector 类来根据 DataItem 的 TemplateType 属性选择相应的 DataTemplate。请将此代码片段复制到您的WPF项目中,并确保已定义了对应的ViewModel和数据类型。当然,我可以为您提供一个简单的 WPF 示例程序,其中包含一个自定义的 DataTemplateSelector。
2024-02-24 11:23:50
1448
原创 c#如何判断一个类型是否为数值类型,请给出通用方法
用于判断类型是否为内置的基元类型,同时排除了布尔类型和字符类型。如果一个类型既是内置的基元类型,又不是布尔类型或字符类型,则被认为是数值类型。属性来判断一个类型是否为内置的数值类型。这种方法更加通用,因为它会考虑到未来可能添加的新的数值类型。是的,除了手动列举全部数值类型外,还可以使用。值,表示该类型是否为数值类型。
2024-02-24 10:32:30
1237
WebApplication_GrpcServer.zip
2022-01-07
thriftSoft.rar
2021-11-16
C#MySQL各个版本驱动库Assemblies.zip
2021-07-30
NPOI 2.3.0.0.zip
2021-07-06
VB生成标准Dll.zip
2021-05-26
netcore,netFramework,监听系统时间发生改变,PC 显示的日期或时 SystemTimeChanged.7z
2023-11-30
C# 如何实现对“属性”的扩展
2023-05-12
Java编程大Android 应用 Apk自动升级
2022-10-31
python最新安装包-3.10.7-amd64.zip
2022-09-19
Rust编译器是在MIT License 和 Apache License 2.0双重协议声明下的免费开源软件
2022-09-19
wasm-tools A Bytecode Alliance project Rust tooling for low-lev
2022-09-19
ActorSim.zip orelans示例
2022-09-16
com0com是windows内核模式下的虚拟串口驱动程序. 解压密码:123
2022-09-16
Orleans.Redis刚才翻看Orleans的官方网站,发现除了大家关注比较多的"Step-by-step Tutorial
2022-06-24
Emgu CV是OpenCV图像处理库的跨平台.Net包装器
2022-03-20
ruby安装包,window安装包
2022-03-19
Spring.NET应用实例,ICO依赖注入
2022-01-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人