自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(87)
  • 资源 (16)
  • 收藏
  • 关注

原创 C# 整数转罗马数字

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如4不写做 IIII,而是 IV。数字1在数字 5 的左边,所表示的数等于大数5减小数1得到的数值4。例如,罗马数字2写做 II ,即为两个并列的 1。12 写做XII,即为X+II。C可以放在 D(500)和M(1000)的左边,来表示 400 和 900。·X可以放在L(50)和C(100)的左边,来表示40 和 90。I可以放在 V(5)和 X(10)的左边,来表示 4和 9。罗马数字包含以下七种字符:I,V,X,L,C,D和M。

2024-04-12 16:01:37 273 1

原创 .netcore grpc日志记录配置

通过配置文件appsettings.json进行配置通过Program.cs进行配置通过环境变量进行配置客户端通过日志通道进行配置。

2023-08-28 11:10:14 491

原创 .netcore grpc截止时间和取消详解

截止时间功能让 gRPC 客户端可以指定等待调用完成的时间。超过截止时间时,将取消调用。设定一个截止时间非常重要,因为它将提供调用可运行的最长时间。它能阻止异常运行的服务持续运行并耗尽服务器资源。截止时间对于构建可靠应用非常有效,应该进行配置。客户端主动取消不再需要长期运行的调用线程故障自动取消超出截止时间触发取消操作。

2023-08-25 14:37:42 642

原创 WPF读取dicom序列:实现上一帧、下一帧、自动播放、暂停

链接:https://pan.baidu.com/s/1hH9xbUL3T6oxcxx0oG9-9Q。

2023-08-25 11:22:59 998 1

原创 WPF开篇

经济不景气,人要更努力静下心来学习,努力提升自己每天进步一点,日积月累,中有一天会得到相应的回报始终相信美好的事情即将发生。

2023-08-20 12:24:23 662

原创 .netcore grpc身份验证和授权

1)引入IdentityServer4、IdentityServer4.AccessTokenValidation、Microsoft.AspNetCore.Authentication.JwtBearer包。2)gRPC工厂中配置token传递 或者在调用对应的客户端函数中对metadata传参。链接:https://pan.baidu.com/s/1viu-REcR-ySdR0FE05sohg。(grpc专栏结束后会开启鉴权授权专栏欢迎大家关注)1)调用鉴权中心获取token。第三步:WPF客户端。

2023-08-18 09:21:56 1642

原创 .netcore grpc客户端工厂及依赖注入使用

gRPC 与的集成提供了一种创建 gRPC 客户端的集中方式。可以通过依赖包Grpc.Net.ClientFactory中的AddGrpcClient进行gRPC客户端依赖注入AddGrpcClient函数提供了许多配置项用于处理一些其他事项;例如AOP、重试策略等创建一个WPF客户端在App.xaml.cs代码类里重写OnStartup方法,进行依赖注入引用ServiceCollection做为容器集注入gRPC工厂,注入windows窗体,以及其他需要用到的服务类等。

2023-08-17 17:34:14 1115

原创 .netcore grpc的proto文件字段详解

grpc的接口传输参数都是根据.proto文件约定的字段格式进行传输的grpc提供了多种类型字段;主要包括标量值类型(基础类型)、日期时间、可为null类型、字节、列表、字典、Any类型(任意类型)、Oneof等字段严格规范,是一种强类型文件协议标量值类型日期时间可为null类型字节列表字典Any类型Oneof:一种语言特性,可以通过该特性进行对象切换处理;使用oneof指定可能返回 A对象或B对象 的响应消息定义通用消息实体根据不同的类型创建对应的案例实体。

2023-08-16 09:14:13 1028

原创 .netcore grpc双向流方法详解

简单来讲客户端可以向服务端发送消息流,服务端也可以向客户端传输响应流,即客户端和服务端可以互相通讯客户端无需发送消息即可开始双向流式处理调用。客户端可选择使用发送消息。使用或可访问从服务流式处理的消息。没有更多消息时,双向流式处理调用完成。客户端发送请求流通过传入到服务端服务端响应到客户端的流通过ResponseStream.WriteAsync写入到客户端服务端使用System.Threading.Channels保证线程安全交互。

2023-08-14 15:14:42 1060

原创 .netcore grpc服务端流方法详解

客户端向服务端发送请求,服务端可以将多个消息流式传输回调用方和客户端流相反,客户端流发出请求,服务端可以传输一批消息给客户端,直至本次请求响应完全结束。针对文件分段传输下载,该方式非常有用。提供一个一元方法查询文件提供一个文件流传输的服务端流式方法,进行文件流推送。

2023-08-14 11:57:35 652

原创 .netcore grpc客户端流方法详解

客户端流式处理方法在该方法没有接收消息的情况下启动。参数用于从客户端读取消息。返回响应消息时,客户端流式处理调用完成。客户端可以发送多个消息流到服务端,当所有客户端消息流发送结束,调用请求流完结方法,则标记客户端流消息推送结束,等待服务端执行完成。等同于客户端发送批量消息,服务端统一处理。接下来 会提供三个案例,用于大家理解第一个客户端流的基础用法第二个客户端流的优化版本第三个客户端的文件流式传输。

2023-08-10 15:51:39 1071

原创 .netcore grpc一元方法详解

这是简易的一元方法执行方式,后续会逐渐延申,尽量面面俱到的阐述所有功能点。项目百度网盘:链接:https://pan.baidu.com/s/1xs8HiGaZgiY-SUb6ZkRhGg提取码:i6ej。

2023-08-09 11:25:10 837 2

原创 .netcore下grpc概述

是一种与语言无关的高性能远程过程调用 (RPC) 框架。基于http/2标准设计,提供了头部压缩、tcp连接上的多路复用、流量控制、流式处理(客户端流/服务端流/双向流)。提供统一使用的.proto文件,它定义 grpc 服务和消息的协定。通过此文件,grpc框架生成服务基类、消息和完整的客户端。

2023-08-08 15:19:39 695

原创 .Net6 使用aspose.cells23.5.0破译

u0008\u0003\u0018\u0005这个混淆类搞透彻,那一切难题迎刃而解,搞透的前提需要了解Workbook类构造函数中的\u0002\u0005私有字段,上面标记的块引用,利用反射的手段就可以成功到达彼岸了。一直断点到如下方法:把下面的代码搞透,你就可以成功到达彼岸了。如果需要源码,可以到本人的csdn中去下载,欢迎您的下载哦。如果需要源码,可以到本人的csdn中去下载,欢迎您的下载哦。如果需要源码,可以到本人的csdn中去下载,欢迎您的下载哦。重点代码就在标记红色的区域,继续跟进。

2023-05-17 10:38:44 3812 9

原创 .netcore 自定义特性类注入(仿TypeFilterAttribute)

代码如下: /// <summary> /// 声明委托 /// </summary> /// <param name="serviceProvider"></param> /// <returns></returns> public delegate object ServiceObjFactory(IServiceProvider serviceProvider);

2022-02-11 16:37:11 907

原创 .netcore 动态组装表达式目录树查询条件内存泄漏问题处理

1.以下代码存在内存泄漏(注意:该代码只有结合EF使用才会存在)// 组装表达式目录树 Type type = = repositoryEntity.GetType(); ParameterExpression parameterExpression = Expression.Parameter(type, "t"); // 生成条件表达式 BinaryExpression

2022-02-11 16:01:28 606

原创 使用Redis实现简单的秒杀功能

首先了解一点程序会出现并发,但是redis不会因为它是单线程的!using ServiceStack.Redis;using System;using System.Threading.Tasks;namespace ConsoleRedis{ class Program { /// <summary> /// 秒杀是否结束 /// </summary> private static bo

2020-06-02 16:46:31 429 1

原创 linq笔记

namespace ConsoleTask.Linq{ public class Racer : IComparable<Racer>, IFormattable { public string FirstName { get; set; } public string LastName { get; set; } p...

2019-10-30 16:25:26 485

原创 .net 将Swagger接口文档导出Word

一.首先你的项目中要有Swagger这个接口请求文档,具体使用可参考我的博文中Swagger使用说明。二.需要了解生成Swagger的UI页面是通过http://localhost:51974/swagger/docs/v1类似这样的请求接口返回的值填充的UI页面;知道了是Swagger页面是通过调用接口来填充信息,那就好办了,我们可以直接取到这个接口的JSON数据,然后我们进行自己需...

2019-10-11 17:40:25 3663 4

原创 C#封装DLL引用(仅显示类文件DLL文件,相关辅助第三方DLL文件不进行生成)

如果大家平时生成项目的时候,应该会了解,生成类框架的时候,不仅会生成自身的类包DLL文件,引用其他的第三方DLL或从nuget包管理器中下载的DLL文件都会编译出来。对于封装成DLL文件给到其他项目使用不是很友好,还很麻烦,每次引用总是要添加许多DLL文件进去。综上的解决方式如下:这是CSDN的帮助说明文档可供大家参考:https://docs.microsoft.com/zh-cn/dotn...

2019-09-25 15:05:56 1513

原创 C#实现数据分组

public class TodoItem { public long Id { get; set; } public string Name { get; set; } public bool IsComplete { get; set; } } List<TodoItem> list = new List&...

2019-07-17 07:36:57 3037

原创 .net swagger自动生成API接口文档

第一步安装swagger第二步:配置swagger[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]namespace HCApi.WebApi{ public class SwaggerConfig { public static void Re...

2019-05-17 16:35:28 2953

原创 Socket连接传递消息

//建立两个程序//接收程序也可称为服务端 static void Main(string[] args) { Console.WriteLine("开始:创建一个Socket对象"); Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Str...

2019-04-26 17:12:10 646

原创 TCPSend和TCPReceive

//首先创建两个应用程序,一个用于发送消息,一个用于接收消息//发送消息的程序 TcpClient tcp = new TcpClient(txtHost.Text, int.Parse(txtPort.Text)); NetworkStream ns = tcp.GetStream(); FileStream fs = File.Op...

2019-04-26 15:40:14 1679

原创 Sqlserver2012 新使用特性

//相比于以前的ROW_NUMBER()代码更加精简的分页方式select * from 表名 order by 字段 OFFSET (10*(1-1)) ROW FETCH NEXT 10 ROWS ONLY//自增序列SEQUENCEcreate SEQUENCE SEQ_Increment as 数据类型 start with 起始位置 INCREMENT BY 自增值//三元运...

2019-04-03 10:53:40 399

原创 sqlserver 递归函数

ALTER FUNCTION [dbo].[Fn_GetChildrenCode]( @ParentCode NVARCHAR(50) -- 父级code代码)RETURNS VARCHAR(max)--下级jsonASBEGIN DECLARE @ReturnJson [varchar] (max) SET @ReturnJson = '[' DECLARE @CS_Co...

2019-04-02 12:10:51 1185

原创 数据流(并行转化数据)

static IEnumerable&lt;string&gt; GetFileNames(string path) { foreach (var fileName in Directory.EnumerateFiles(path, "*.txt")) { yield return fileName;...

2019-03-12 15:36:35 267

原创 HttpClient与HttpListener

/// &lt;summary&gt; /// 获取http主体请求对应的主体消息 /// &lt;/summary&gt; /// &lt;returns&gt;&lt;/returns&gt; public static async Task GetDataAdvancedAsync() { ...

2019-02-02 15:57:58 1073

原创 使用RSA签名和散列

直接上代码: public CngKey _aliceKey; public byte[] _alicePubKeyBlob; static void Main(string[] args) { byte[] doc; byte[] hash; byte[] ...

2019-02-01 17:23:37 420

原创 C#加密数据

一些机密的数据应得到保护,可以用对称或不对称秘钥来机密这些数据。通过对称密钥,可以使用同一个密钥加密解密。与不对称密钥的加密相比,加密和解密使用不同的密钥:公钥/私钥。如果使用一个公钥进行加密,就应该使用对应的私钥进行解密,而不是使用公钥解密。同样,如果使用一个私钥加密,就应该使用对应的公钥解密,而不是使用私钥解密。不可能从私钥中计算出公钥,也不可能从公钥中计算出私钥。涉及案例如下...

2019-02-01 16:21:47 577

原创 Timer计时器

使用计时器,可以重复调用方法。使用System.Threading.Timer类,可以把要调用的方法作为构造函数的第一个参数传递。这个方法必须满足TimeCallback委托的要求,该委托定义一个Void返回类型和一个object参数。通过第二个参数,可以传递任意对象,用回调方法中的object参数接收对应的对象。例如,可以传递Event对象,向调用者发送信号。第三个参数指定第一次调用回调方法时的...

2019-01-18 17:13:04 755

原创 同步任务七

ReadWriterLockSlim类为了使锁定机制允许锁定多个读取器(而不是一个写入器)访问某个资源,可以使用ReadWriteLockSlim类。这个类提供了一个锁定功能,如果没有写入器锁定资源,就允许多个读取器访问资源,但只能有一个写入器锁定该资源。阻塞的EnterReadLock()和不阻塞的TryEnterReadLock()方法来获取读取锁;阻塞的EnterWriteLoc...

2019-01-18 17:01:31 154

原创 同步任务六

Barrier类:对于同步,Barrier类非常适用于其中工作有多个任务分支且以后又需要合并工作的情况。Barrier类用于需要同步的参与者。激活一个任务时,就可以动态地添加其他参与者,例如,从父任务中创建子任务。参与者在继续之前,可以等待所有其他参与者完成其工作。 static void Main(string[] args) { ...

2019-01-18 16:34:49 143

原创 任务同步五

Events类:与互斥和信号量对象一样,事件也是一个系统范围内的资源同步方法。为了从托管代码中使用系统事件,.net framework 在system.Threading名称空间中提供了ManualResetEvent、AutoResetEvent、ManualResetEventSlim和CountdownEvent类。 AutoResetEvent(bool initialState...

2019-01-18 14:21:43 186

原创 任务同步四

Semaphore类:信号量非常类似于互斥,其区别是,信号量可以同时由多个线程使用。信号量是一种计数的互斥锁定。使用信号量可以定义允许同时访问受旗语锁定保护的资源的线程个数。如果需要限制可以访问可用资源的线程数,信号量就很有用。 static void Main(string[] args) { int semapCount = 3; ...

2019-01-18 08:37:04 133

原创 任务同步三

WaitHandle是一个抽象类,用于等待一个信号的设置。可以等待不同的信号,因为WaitHandle是一个基类,可以从中派生一些类如下案例: public delegate int TakesAWhileDelegate(int x, int ms); static void Main(string[] args) { ...

2019-01-17 15:44:24 130 1

原创 任务同步二

Monitor类主要优点:可以添加一个等待被锁定的超时值。这样就不会无限期的等待被锁定。 public void MonitorTryEnter() { bool flag = false; Monitor.TryEnter(_syncRoot, 500, ref flag); if (fl...

2019-01-17 14:13:06 203

原创 任务同步一

首先要避免同步,最好是不要在线程之间共享数据。如果必须要共享数据,就需要用到同步技术。使用线程容易出现的两个问题:争用条件和死锁。如果两个或多个线程访问相同的对象,并且对共享状态的访问没有同步,就会出现争用条件。如下案例,执行会出现征用条件的程序断言 public class StateObject { private int _state = 5;...

2019-01-16 16:02:07 239

原创 任务

任务(Task)表示完成的某个工作单元。这个工作单元可以在单独的线程中运行,也可以以同步的方式启动一个任务,这需要等待主调线程。使用任务不仅可以获得一个抽象层,还可以对底层线程进行很多控制。具体场景:在安排需要完成的工作时,任务提供了非常强大的灵活性。如,可以定义一个连续的工作——在一个任务完成后该执行什么工作。这可以任务成功与否来区分。另外,还可以在层次结构中安排任务。例如,父任务可以创建新...

2019-01-14 13:03:14 247

原创 数据并行

Parallel类是对线程的一个很好的抽象,提供了任务和数据的并行性。提供了三个方法Parallel.For()、Parallel.ForEach()和Parallel.Invoke()方法。Parallel.Invoke用于任务的并行性,而Parallel.ForEach用于数据并行性。下面看案例: private static void Log(string pr...

2019-01-14 08:48:53 535

Net6 使用Aspose.Cells23.5.0破译

基于.net6做的excel开发工具

2023-05-17

NpoiWordBySwagger.zip

.net webapi项目中引用了Swagger,由于该接口文档无法导出,只能浏览,现公司有需求导出word文档,所以自己简单写了下导出word的功能,使用的是npoi;具体的导出说明和操作步骤,可以查看我的博客“.net 将Swagger接口文档导出Word”一文所述。

2019-10-11

webapi下的token认证和刷新token

通过ajax分配相应的clientID和Secret及用户名和密码,后端利用owin进行处理并分配access_token,刷新token调用相应的ajax,根据已提供refresh_token进行刷新;测试页面click_me_please_iframe.html包含相应的刷新和认证,同时refresh_token以文件的形式进行存储,方便下次程序直接使用,不必要在产生新的token;开发工具是vs2017

2018-04-27

压缩文件引用的dll文件

可在 本人博客中浏览具体的使用法法

2017-07-13

.net工作流

Asp.net 工作流实例 实现报销单的审批,驳回等一系列功能。

2017-03-31

flexpaperDemo

.net相关 文件转换为swf格式并在页面可进行相应的操作;前提是需要上传pdf文件方可进行swf文件转换,方可网页查看。运行代码根据相应的验证处理上传即可,或者使用我已经存在项目中pwd文件,启动login.aspx 页面直接点击查看按钮即可看到效果

2017-01-13

flexpaper1.4.5含带swf转换工具

改进flexpaper1.4.5不含旋转图标的样式

2017-01-13

FiexPaperViewer二次开发教程及源码

FiexPaperViewer二次开发教程及源码

2017-01-12

Newtonsoft.Json

包含2.0-4.0的相关Newtonsoft.Json

2017-01-10

SecuritySwitch v4.2.0.0

用于.net下自由设定请求https页面还是http页面

2016-12-23

Ajax安全技术讲解教材

由于ajax的应用越来越广泛,所带来的优势相信大家都知道,但其存在的漏洞也让人头疼,在这里给大家推荐一本ajax安全方面的书籍,欢迎下载

2016-12-22

JavaScript权威指南第4版+Javascrpt高级程序设计

帮助学习JavaScript朋友进一步提升自己的技术水平,只有扎实的技术才是你成功的关键

2016-10-31

OLE/COM 对象查看器

含有相应的在visual studio中的配置描述;

2016-10-10

.net邮箱的简单制作

项目开发环境 vs2012 sqlserver2008 r2 使用技术EF+EasyUI+KindEditor+一般处理程序;使用时请将MainIndex.html设为主页启动;另含有一个easyui的简单上传功能,和邮箱是分开的,由于时间较短,所以邮箱功能较简略,希望可以帮助需要帮助的朋友

2016-07-15

EasyUI中datagrid 分页,僧删改查,上下移动数据.net案例

该项目是对easyui中datagrid的一些操作示例;希望得到您赏识,虽然不是很难但也是楼主认真付出的结晶。可以和朋友们互相交流

2016-07-08

.net实现新增数据时编号自动加一

编号格式比较自增

2016-04-21

用webform实现的文本框提示搜索功能

没有绑定数据库,数据是死的,可以完善绑定数据库进行模糊搜索绑定,效果会更好 设置webform1.aspx为启动页就可以看到效果!略微有些粗糙,希望下载的朋友见谅

2016-04-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除