NVelocity实现代码生成

博主头像 在框架开发过程中,通用代码生成是一项必不可少的功能,c#在这后端模板引擎这方面第三方组件较少,我这里选择的是NVelocity,现在升级到了NetStandard2.0,可以用于NetCore项目 添加引用 ​ 初始化模板引擎及设置模板读取路径 vltEngine = new VelocityEng ...

我竟是小丑

博主头像 问题描述 表象 拾取元素时出现“穿透”,通过 WindowsAPI 拾取目标控件元素信息时,鼠标拾取元素的同时还执行了目标控件上的操作,这种情况是不允许的。(PS:通过单击进行拾取,常规情况下已做了屏蔽,不会执行目标控件的操作) 里象 经过分析和测试,得出结论。误操作的控件绑定的不是 Click事件 ...

C#使用struct直接转换下位机数据

博主头像 编写上位机与下位机通信的时候,涉及到协议的转换,比较多会使用到二进制。传统的方法,是将数据整体获取到byte数组中,然后逐字节对数据进行解析。这样操作工作量比较大,对于较长数据段更容易计算位置出错。 其实,对于下位机给出通讯的数据结构的情况下,可以直接使用C#的struct将数据直接转换。需要使用到 ...

一个小时开发的直播推拉流软件来了

博主头像 一、简介 目前市面上直播推流的软件有很多,拉流也很常见。近期因为业务需要,需要搭建一整套服务端推流,客户端拉流的程序。随即进行了展开研究,花了一个小时做了个基于winfrom桌面版的推拉流软件。另外稍微啰嗦两句,主要怕你们翻不到最下面。目前软件还是一个简化版的,但已足够日常使用,比如搭建一套餐馆的监 ...

分别使用 Python 和 Math.Net 调用优化算法

博主头像 1. Rosenbrock 函数 在数学最优化中,Rosenbrock 函数是一个用来测试最优化算法性能的非凸函数,由Howard Harry Rosenbrock 在 1960 年提出 。也称为 Rosenbrock 山谷或 Rosenbrock 香蕉函数,也简称为香蕉函数。 Rosenbrock ...

串口使用Pipeline时诡异的ReadOnlySequence问题

博主头像 借鉴之前的Pipeline的操作方式,现在目标是给串口读取操作也使用上Pipeline。稍微改造一下,以下代码可以直接运行。 协议为使用连续的4个0XFF作为结尾,没有头标志。数据总长为68位定长。 我需要判断从开始到选定位置是否长度足够,这里面用来判断segment长度我用了这个方式。 buffe ...

为你的项目启用可空引用类型

博主头像 为你的项目启用可空引用类型 Intro C# 从 8.0 开始引入了可空引用类型,我们可以为项目启用可空引用类型来借助编译器来帮助我们更好的处理代码中的空引用的处理,可以避免我们写很多不必要 null 检查,提高我们的效率 Why 为什么我们要启用可空引用类型呢,首先我们可以看一下 asp.net ...

c#爬虫-selenium检测webdriver封爬虫的解决方法

博主头像 背景 大家在使用Selenium + Chromedriver爬取网站信息的时候,以为这样就能做到不被网站的反爬虫机制发现。但是实际上很多参数和实际浏览器还是不一样的,只要网站进行判断处理,就能轻轻松松识别你是否使用了Selenium + Chromedriver模拟浏览器。其中 window.na ...

.NET的并发编程(TPL编程)是什么?

博主头像 写在前面 优秀软件的一个关键特征就是具有并发性。过去的几十年,我们可以进行并发编程,但是难度很大。以前,并发性软件的编写、调试和维护都很难,这导致很多开发人员为图省事放弃了并发编程。新版 .NET 中的程序库和语言特征,已经让并发编程变得简单多了。随着 Visual Studio 2012 的发布, ...

又一款日志组件:ELMAH日志处理异常

博主头像 背景 ELMAH就是一个日志的拦截和处理组件,说到.net的日志组件,大家的第一反应该是Log4Net、NLog等这些东西,关于Log4Net和NLog,可以说是.net日志组件里面使用最为广泛的组件了,它们功能强大、使用方便。 优点 相比它们: 1、ELMAH的使用更加简单,它甚至不用写一句代码; ...

C# 创建Excel气泡图

博主头像 气泡图(Bubble Chart)是可用于展示三个变量之间的关系。通过绘制x 值, y 值和大小值即可确定图表中气泡的坐标及大小。下面通过后端C#代码及VB.NET代码展示如何来实现在Excel中创建气泡图的方法。 程序环境: Visual Studio .Net FrameWork 4.5.1 S ...

Quartz - 作业调度框架-插件化开发

博主头像 背景 大部分业务都是基于定时的任务,特别适合使用quartz这类框架解决定时问题。具体quartz的使用,看官方文档就可以了。下面谈谈对quartz插件化的封装。我们使用quartz.plugin。然后在quartz_jobs.xml方法里面定义了schedule,其中灵活的地方在于,里面定义了Jo ...

C#初学,数据类型

值类型 数据类型,字符类型,布尔类型,日期类型 结构类型(struct),枚举类型(enum) 引用类型 字符串(string),数组,类,委托类型 说明:(1)值类型数据-通常在栈(stack)中分配,变量中存放的是实际数据值。(2)引用类型的实际数据被分配在堆(managed heap)中,而引 ...

c#委托和事件

委托就是把一个函数封装成对象,强化了c#的面向对象特性, 用法还在摸索 事件是委托的特殊拓展,事件的使用主要包括: 1.委托的创建 public delegate void XXEventHandler(Parameter A,~); //多播时返回只能是void,执行该委托时 3,5中的参数必须保 ...

最近遇到的问题记录:UrlEncode、UrlDecode

博主头像 本文阅读前了解知识:什么时候需要使用UrlEncode和UrlDecode函数 作者使用谷歌浏览器,通过按下F12对第三方网站http协议的接口抓包进行分析操作。 场景 运维小哥哥偶尔使用某某外包公司的网站系统,做设备录入工作,流程简单: 录入设备基本信息,有7、8个字段需要输入,然后点击保存按钮; ...

<1···678···36>