![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
还有远方和田野
90后程序员,斜杆青年
展开
-
Nancy (二)
最近做CS项目,一直在使用TCP+Socket 做数据传输,不太爽,砸门可是多年BS的开发,这样开发接口出去比较费劲,但是又不想用asp.net mvc webapi,要按照IIS,有些工控机的系统环境也是很尴尬的,那么也可以用wcf啊,不用依赖IIS,比较麻烦。所以还是用了Nancy!3 上代码 (NancyModule) 注意Post方法的From参数获取和Body参数获取,代码中均有给到。1 老规矩,Nuget下载!原创 2023-11-23 11:28:59 · 157 阅读 · 0 评论 -
Quartz.NET 作业调度
定时任务处理 :1,winfrom 有定时组件2,C# 里面有System.Threading.Timer类3,System.Threading.Timer学习一下就会了,自己在写windows 服务程序中有用到过,前面都文章中有。Quartz使用:学习文档可以看这里 https://www.w3cschool.cn/quartz_doc/1,nuget中下载Quart...原创 2020-04-20 16:33:47 · 372 阅读 · 2 评论 -
作业调度FluentScheduler的使用
定时的作业调度工具很多以前用过是Quartz.NET这个,后面也用过FluentScheduler,个人绝对比较好用,所以记录下。所以很简单,Registry类和IJob类 的继承类就可以去控制定时调度了!老规矩 nuget下载。原创 2023-05-27 22:03:19 · 313 阅读 · 0 评论 -
C# 获取最后执行的sql语句,通用方法
/sqlParameters的基类,.net的sql参数类都实现IDbDataParameter 故而可用通用!//commandText 带sql参数的sql语句。原创 2023-02-22 18:15:19 · 240 阅读 · 0 评论 -
数据和请求接口的事务一致性
事务中去请求第三方接口,对方接口超时多久,DB事务也卡多久,知道接口返回再处理事务是否提交,当然这不是最好的解决方法,存在的缺点:1,占库,2,等待接口响应时间可能比较长。原创 2023-02-21 22:24:11 · 158 阅读 · 0 评论 -
C#正则表达式
有段时间没有写过C#正则了,记录下。原创 2022-07-26 10:15:26 · 123 阅读 · 0 评论 -
oracle的系统时间装换为指定时间格式保存
to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')原创 2021-06-03 18:23:05 · 199 阅读 · 0 评论 -
AutoFace实现依赖注入
1,常规的通过注入实实现控制反转的方式(构造注入,方法注入,属性注入)不多说了,其他概念百度查一下就好,上代码最直接 //数据操作接口 public interface IDatabase { string Name { get; } void Select(string commandText); void Insert(string commandText); vo原创 2020-11-25 15:21:45 · 1750 阅读 · 0 评论 -
C#递归处理树菜单
菜单类 public class Enum { public int id { get; set; } public string Name { get; set; } public int pid { get; set; } }树形菜单类 public class ResposeEnum { public int id { get; set; .原创 2020-11-20 09:33:48 · 1050 阅读 · 0 评论 -
redis简单帮助类
代码很简单,根据它的操作自己封装就好了using ServiceStack.Redis;using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace SHB.TOPS.WebApi.FMS.Common{ public class RedisHelp { RedisClient redisClient = null; pu原创 2020-05-26 15:33:47 · 376 阅读 · 0 评论 -
C# 网络请求
1,写了接口,不写程序调用可以是使用postman 发包看看情况,简单写了HttpClient,HttpWebRequest的post和get请求方式,比较简单一看就明白了,代码如下:using System;using System.Collections.Generic;using System.IO;using System.Net;using System.Net.Http;using System.Net.Http.Headers;using System.Text;name原创 2020-05-26 15:25:56 · 1433 阅读 · 0 评论 -
C#写入文件
1.采用打开创建的方式,同名写入,不同名创建,最近接手一个项目,一些好用的日志组件领导不也不用,自己写呗 void WriteLogFile(string Content) { string strFoloder = AppDomain.CurrentDomain.BaseDirectory + "\\applogs"; if (!Directory.Exists.原创 2020-05-21 11:15:32 · 638 阅读 · 1 评论 -
NET使用NPOI读取excel
1,记录一下,通过sheel名字读取,同时处理数据为时间读取内容不正确的情况 /// <summary> /// 读取excel 表格 /// </summary> /// <param name="fileName"></param> /// <param name="s...原创 2020-04-28 10:46:12 · 529 阅读 · 0 评论 -
SqlSugar-ORM 学习使用实现简单的封装
1,开源地址:https://github.com/sunkaixuan/SqlSugar也可在VS中搜索SqlSugar 进行安装文档,例子都在该地址中找到, http://www.codeisbug.com/ SqlSugar是一款国产ORM。使用非常方便,能快速实现对 SqlServer,Sqlite,Oracle,MySql,等主流数据库的CRUD ORM...原创 2020-03-12 17:12:53 · 3211 阅读 · 0 评论 -
webapi使用JWT进行授权认证
1,在asp.net mvc 中常用的是 Cooke+Session 或者 form 认证(实际也是Cooke)的方式,当然都是mvc中在 webapi中也是可以使用的,那么上面的两种方式这里就不多写了,后面有时间写,今天最主要是 JWT的认证方式2,简单说明一下,JWT是什么。JWT 全称 JSON Web Tokens ,是一种规范化的 token。是对 token 这一技术提出一套规范...原创 2020-02-27 18:06:54 · 5033 阅读 · 0 评论 -
使用SuperWebSocket实现Web消息推送
很久想实现这个功能,今天试一试,其实为了实现客户端获取到信息,客户端也可以使用ajax去轮询的方式,只不过那样的效率比较低,而且对服务器的压力比较大!一步步来吧,1,vs下载相关组件2,写入服务端代码public class WebSocketManager { static Dictionary<string, WebSocketSession&...原创 2020-02-03 15:22:49 · 1140 阅读 · 0 评论 -
Nancy (一)
首先了解下:Nancy是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono平台,框架的目标是保持尽可能多的方式,并提供一个super-duper-happy-path所有交互。 Nancy 设计用于处理DELETE, GET, HEAD, OPTIONS, POST, PUT 和 PATCH 等请求方法,并提供简单优雅的 DSL以返回响应。 Nan...原创 2019-10-20 22:40:18 · 570 阅读 · 0 评论 -
C# LINQ to XML
C# LINQ to XMLNET 3.5 的时候出现了 LINQ to XML 也确实挺好用的。 //注意 XDocument.Load(Path).Root.Elements("Order") string Path = HttpContext.Current.Server.MapPath("/data/Orders.xml"); var List = (from...原创 2019-10-20 21:35:49 · 131 阅读 · 0 评论 -
C# 反射实用
在.NET中的反射,常用的有三个方法:Assembly.Load()Assembly.Load(“程序集”) //也就dll的命名空间Assembly.LoadFrom()Assembly.LoadFile()动态加载ddl后开始操作,简单的写一下 public class Class1 : IClass1 { public int Sum(int...原创 2019-06-13 13:50:39 · 117 阅读 · 0 评论 -
C#中的ASCII加密/解密
#region ========加密======== /// <summary> /// 加密 /// </summary> /// <param name="Text"></param> /// <returns></returns> public static string E...原创 2019-06-13 15:04:06 · 943 阅读 · 0 评论 -
C# 创建Windows Service(Windows服务)程序
为什么写这个文章,其实公司以前让我写一个定时处理的程序,然后跟随电脑启动了默默在后台处理一些事情,个人觉得还是挺好的,觉得有些价值,所以尝试去做了!废话不多说!一步步开始,1,新建windows server2,新增server程序,并且添加安装程序这里要知道的是,windows 是需要引导安装的,同时也是依附环境安装启动的!后面介绍!3,配置一下基本属性相信到这里,你已经看出来...原创 2019-06-07 19:50:21 · 7792 阅读 · 6 评论 -
C#多线程(三)
三,异步回调.顺序控制!【异步回调】private void button3_Click(object sender, EventArgs e) { Console.WriteLine(); Console.WriteLine("****************** 异步方法 start {0}********************", T...原创 2019-06-18 23:48:39 · 220 阅读 · 0 评论 -
.net中的各种委托用法(一)
随这net的不断升级,委托也出现了这三者。(Delegate、Action、Func)应用场景比如跨线程更新winform UI,线程调用处理等等。1,Delegate 委托关键字 ,实际是声明的方法原型 ,即参数和返回类型static void Main(string[] args) { reslt = 0; DeleMe...原创 2019-06-15 14:30:23 · 3758 阅读 · 0 评论 -
.net中的各种委托用法(二)
上吃用到了比较老的 delege 委托,新的升级中有新的关键字 Action 和Func1,Action,可以传入参数,没有返回值的委托!看看函数重载说明就知道了!上代码,一目了然 static void Main(string[] args) { Action<int, int> action = new Action<int,...原创 2019-06-15 15:44:25 · 506 阅读 · 1 评论 -
C#多线程(四)
线程池,在线程出现之后,在NetFramework2.0之后出现了 ThreadPool线程池:池化线程管理,进程唯一一个实例,其中会默认申请10个线程,程序需要线程时,就向池子申请,获取并使用,用完后回归池子;如果线程不够用,会由池子向CLR申请,如果闲置太多,就池子负责释放;效果:起到线程重用,避免重复的申请释放;管控最大线程数量 ,再往后的多线程,都是基于线程池的线程;不会阻塞当前线程...原创 2019-06-19 23:52:34 · 176 阅读 · 0 评论 -
Dev绑定下拉框LookUpEdit
一般的绑定方式给个数据源(DataSource),然后在属性上给定 列属性(Column),显示(DisplayMember),值(ValueMember)其实当下拉框太多了的话,配置这些很费时间的,我是听不舒服的,所以后面自己全部写代码了,爽歪歪,上代码,,, using (ServiceManager<IArrangeMoveGoods> sm = new ServiceM...原创 2019-06-12 09:46:18 · 1280 阅读 · 0 评论 -
C#中的lamda实用的select用法
关于lamda一般的常规用法就不说了,整点比较实用的。1,集合通过select转匿名对象 还可以做出判断或者转换2,有些时候是把这个对象转成另外的对象,以前的搞法就是循环,创建对象,给对象值赋值,对象集合添加,写法的态繁琐了我们可以这么整拼接In的操作 欢迎指点!!...原创 2019-06-12 10:17:24 · 16483 阅读 · 1 评论 -
C#多线程(一)
线程关键字 Thread原创 2019-06-18 13:14:01 · 143 阅读 · 0 评论 -
C#手写ORM框架,核心实现
ORM 对象关系映射,net平台上最出名就是EF框架了,当然还有dapper,EF好用的,但是他太大了,如果是一写小项目的项目则咩有必要,那么dapper是一个比较轻量级的,他的映射在于实体对象和sql参数的对应,笔记接近ado.net了,那么我们可以自己写一个orm么?当然是可以的,其实不管怎么样最后到底层还是sql语句,对于net来说就是 ado.net!1,在此之前,应该了解一写关于反射的...原创 2019-06-22 15:16:06 · 1458 阅读 · 0 评论 -
C#多线程(二)
二,线程的同步和异步如果看到我关于委托应用(二)的朋友应该发现了this.Invoke(delegate) 的用法,这是实际是线程的调用,跨线程调用的使用 ,和new delegate().Invoke() 是不一样的,但是都可去调用委托的同步异步!概念同步:发起调用,必须等着完成后,才能进入下一行。异步:发起调用,不用等着完成,直接进入下一行,原来的操作也会有新的执行流来完成。一,线程...原创 2019-06-18 16:57:55 · 203 阅读 · 0 评论 -
.NET 中使用redis(四)
1,应用场景:订单过期时间可以通过redis缓存进行存放,然后redis过期之后,处理订单超时可以使用redis 的键过期触发事件通知!redis在 2.8.0(4.0以后就开始收费了)以后的版本提供了,KeySpace Notification功能,允许客户订阅pub/Sub频道,以便以某种方式接收影响redis数据集事件。接下来实际操作:先看看自己的redis版本:我这是3.0的版...原创 2019-06-23 15:39:29 · 1561 阅读 · 0 评论 -
C#中的动态类型dynamic
1,动态类型dynamic最常见啊的使用就是在将json字符串接受下来,然后像操作是js操作json一样去处理数据,很轻盈的!废话不多说,上代码!var info = "{\"Account\":\"张三\",\"Pwd\":\"12323\"}"; //json字符串var infoDynamic = JsonConvert.DeserializeObject<dynamic&g......原创 2019-07-02 10:37:34 · 7601 阅读 · 0 评论 -
C#中的Attribute简单使用
C#的特性是4.0 才出来的,在什么地方看到最多呢,就是实体类的字段上面,形式是[类名(参数)]。那么,,一,什么是特性特性也是一种对象,关键字是 Attribute,特殊之处在于其编译时就存在了,也就是在程序运行之前就存在了。二,是用特性的类必须继承 Attribute先给段简单代码玩一下 public class student { ...原创 2019-06-13 10:55:29 · 1285 阅读 · 0 评论