
.Net通用工具
2b勿扰
专注技术的研究
展开
-
C# AES加密封装(工具十)
#region AES加密 /// <summary> /// AES加密 /// </summary> /// <param name="source"></param> /// <param name="key">密钥</param> ...原创 2020-04-23 14:00:40 · 16651 阅读 · 1 评论 -
C#/.NET SuperSocket的使用
首先安装:SuperSocket.EngineSuperSoket的三大对象:Session: 每一个用户连接就是一个SessionAppServer: Socket服务器实例Commands: 客户端向服务器发送消息的命令集合首先在配置文件加入如下配置<configSections> <section name="superSocket" type="S...原创 2020-01-15 19:41:28 · 20361 阅读 · 0 评论 -
C#/.NET NPOI 表格导出导入操作的封装
using System;using System.Collections.Generic;using System.Linq;using System.Text;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.HSSF.UserModel;using System.IO;using System.Data;...原创 2020-01-12 23:26:33 · 18517 阅读 · 0 评论 -
C#/.NET Log4日志的用法
nuget安装log4net包配置文件代码如下<?xml version="1.0" encoding="utf-8"?><log4net> <!-- Define some output appenders --> <appender name="rollingAppender" type="log4net.Appender.RollingFi...原创 2020-01-07 10:58:13 · 20942 阅读 · 0 评论 -
C#/.NET 系统优化专题(搜索引擎Lucene的使用)
讲Lucene之前先说说数据库索引的使用,如下图对列的计算要避免,任何形式都要避免in查询 or查询,索引会失效,可能是拆分in 换exists,not in 不要用,不走索引is null和is not null 都不走索引<> 也不走索引 ,可以拆分成> 和<join时,链接越少性能越高左链接,以左边的结果为准,右链接反过来,连接字段要求带索引...原创 2020-01-06 21:41:55 · 20570 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebApi解决跨域问题)
negut引用:MIcrosoft.AspNet.WebApi.Cors添加配置如下:webapi网站就可以解决跨域问题全局配置public static class WebApiConfig{ public static void Register(HttpConfiguration config) { config.EnableCors(new En...原创 2020-01-06 20:10:19 · 20212 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebApi行为过滤处理方式)
行为异常过滤public class CustomActionFilterAttribute : ActionFilterAttribute{ public override void OnActionExecuting(HttpActionContext actionContext) { Console.WriteLine("1234567"); }...原创 2020-01-06 19:38:00 · 20183 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebApi异常的三种处理方式)
异常处理特性public class CustomExceptionFilterAttribute : ExceptionFilterAttribute{ /// <summary> /// 异常发生后(没有被catch),会进到这里 /// </summary> /// <param name="actionExecutedCon...原创 2020-01-06 19:09:34 · 20239 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebApi权限认证)
权限认证:是需要的,http地址,是公开的,所以需要权限认证session–webapi默认是不支持session–RESTful—可以自行扩展去支持无状态:第2次请求和第1次请求不关联1 登陆过程,拿到令牌–token–ticket–许可证2 验证成功–账号+密码+其他信息+时间–加密一下得到ticket—返回给客户端3 请求时,ajax里面带上这个ticket(header)4 ...原创 2020-01-06 16:05:36 · 20333 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebApi后端实现HTTP请求数据)
/// <summary>/// 要求HttpClient的实例化都从这里来 全局只要一个实例,不要using/// 各个请求是隔开的,可以复用链接的 /// </summary>public class HttpClientFactory{ private static HttpClient _HttpClient = null; static...原创 2020-01-06 10:26:11 · 20322 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebApi前后端传递参数详解)
Get前端(以JQ测试,其他前端请求列如:axio,jsonp等都是一样的)$("#btnGet1").on("click", function () { //$.ajax({ url: "/api/users", type: "get", data: { "userName": "Superman" }, success: function (data) { alert(data)...原创 2020-01-06 10:15:08 · 20418 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebApi的使用)
.NET MVC/.NET COER 下WebApi基本使用如下//[RoutePrefix("api/Values/")]//action就可以去掉这一节;如果某个方法又不要了,可以在路由前面加个~ [Route("~api/Values/{id:int}")]public class ValuesController : ApiController{ // GET api/va...原创 2020-01-06 00:02:02 · 20554 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WCF的使用)
WCF相比于webservice特点是:支持不同的协议:http tcp IPC MSMQ p2p支持不同的宿主:网站 控制台 winform WindowsService双工协议(可在接的同时进行发)下面来说说WebService的使用第一种方法:一:在asp.net网站的路由中配置如下代码public class RouteConfig{ public stati...原创 2020-01-05 21:08:40 · 20288 阅读 · 0 评论 -
C#/.NET 分布式专题(SOA【面向服务】WebService的使用)
对于分布式框架,微服务专题后续会介绍到。分布式框架主要有(zookeeper,dubbo,ocelot/consul)WebService:寄宿在IIS,也就是必须在网站项目Http协议 SOAP协议1 Http传输信道,A服务器到B服务器,数据是什么格式传递的2 XML的数据格式—Http传输解析得到的有用数据3 SOAP协议—封装格式:在分布式的环境中,描述了如何做数据交换的...原创 2020-01-05 12:01:55 · 21215 阅读 · 0 评论 -
C#/.NET redis案例【超卖,秒杀活动】
redis中string数据结构实现超卖public class Oversell { private static bool IsGoOn = true;//秒杀活动是否结束 public static void Show() { using (RedisStringService service = new Re...原创 2020-01-04 10:19:12 · 22836 阅读 · 1 评论 -
C#/.NET 系统优化专题(redis第六篇 数据结构【List】)
RedisListService 类请参考第一篇的封装redis 数据结构List的使用using (RedisListService service = new RedisListService()) { service.FlushAll(); service.Add("arti...原创 2020-01-03 23:06:24 · 20403 阅读 · 0 评论 -
C#/.NET 系统优化专题(redis第五篇 数据结构【ZSet】)
RedisZSetService 类请参考第一篇的封装redis 数据结构ZSet的使用using (RedisZSetService service = new RedisZSetService()){service.FlushAll();//清理全部数据service.Add("advanced", "1");service.Add("advanced", "2");servi...原创 2020-01-03 23:02:24 · 20422 阅读 · 0 评论 -
C#/.NET 系统优化专题(redis第四篇 数据结构【Set】)
RedisSetService 类请参考第一篇的封装redis 数据结构Set的使用using (RedisSetService service = new RedisSetService()){service.FlushAll();//清理全部数据service.Add("advanced", "111");service.Add("advanced", "112");servi...原创 2020-01-03 23:00:46 · 20211 阅读 · 0 评论 -
C#/.NET 系统优化专题(redis第三篇 数据结构【Hash】)
RedisHashService 类请参考第一篇的封装redis 数据结构Hash的使用using (RedisHashService service = new RedisHashService()){service.SetEntryInHash("student", "id", "001");service.SetEntryInHash("student", "name", "张小徐...原创 2020-01-03 22:55:39 · 20275 阅读 · 0 评论 -
C#/.NET 系统优化专题(redis第二篇 数据结构【String】)
RedisStringService 类请参考第一篇的封装redis 数据结构string的使用using (RedisStringService service = new RedisStringService()) { service.Set<string>("student1", "梦的翅膀"); ...原创 2020-01-03 22:53:06 · 20161 阅读 · 0 评论 -
C#/.NET 系统优化专题(redis第一篇 封装源码)
首先nuget:ServiceStack.Redis初始化public sealed class RedisConfigInfo { /// <summary> /// 可写的Redis链接地址 /// format:ip1,ip2 /// /// 默认6379端口 /// &...原创 2020-01-03 22:37:19 · 20450 阅读 · 0 评论 -
第三方工具Unity的底层源码(IOC容器 DI注入 AOP面向切面)
public interface IXTContainer { void RegisterType<TFrom, TTo>(); T Resolve<T>(); } /// <summary> /// 容器--工厂 /// </summary> public class...原创 2020-01-01 23:22:58 · 20369 阅读 · 0 评论 -
c# 任务调度篇QuartZ(第五部分:解决应用程序池回收不生效的问题)
WindowsService:1.添加一个WindowsService2.添加安装程序3.就可以安装服务(可以通过工具)public partial class Service1 : ServiceBase { Log4NetLogger log4NetLogger = new Log4NetLogger(typeof(Service1)); ...原创 2019-12-28 21:35:12 · 20763 阅读 · 0 评论 -
c# 任务调度篇QuartZ(第四部分:配置添加任务文件使用)
主要改写的代码//IJobDetail sayHijobDetail = JobBuilder.Create<SayHIJob>()// .WithDescription("this is sayHijobDetail")//.WithIdentity("SayhiJob", "Vip高级班")//.WithDescription("This is SayhiJob")...原创 2019-12-28 20:38:29 · 21020 阅读 · 0 评论 -
c# 任务调度篇QuartZ(第三部分:实现管理可视化)
1.新建一个项目2.引入QuartZ/CrystalQuartz3.访问:http://localhost:50611/CrystalQuartzPanel.axd4.指定StdSchedulerFactory监控参数 端口和可视化项目的 webconfig 下的provider value 端口保持一直原有项目代码#region Scheduler//StdSchedulerF...原创 2019-12-28 20:33:50 · 22005 阅读 · 0 评论 -
c# 任务调度篇QuartZ(第二部分:框架日志和监听)
执行代码public static async Task Init() { #region 获取框架日志 LogProvider.SetCurrentLogProvider(new CustomConsoleLogProvider());// #endregion #region ...原创 2019-12-28 12:05:47 · 21436 阅读 · 0 评论 -
c# 任务调度篇QuartZ(第一部分:基础的使用)
Nuget引入程序包 QuartZ三大核心对象 IScheduler:时间轴 单元 盒子 在这里进行任务配置 IJobDetail:描述具体做什么事情,定时任务执行的动作 ITrigger:时间策略,按照什么频率来执行传参数:jobDetail.JobDataMap.Add 传参数 trigger.JobDataMap.Add 传参数 注意: context.MergedJobDataM...原创 2019-12-26 22:51:11 · 21941 阅读 · 0 评论 -
c# 工具(爬虫的封装和使用HttpWebRequest版)
爬虫的封装HttpWebRequest类版本(后续说到HttpClient版本)public class HttpHelper { private static Logger logger = new Logger(typeof(HttpHelper)); /// <summary> /// 根据url下载内容 之前是GB2...原创 2019-12-26 17:22:59 · 20947 阅读 · 0 评论 -
第三方工具Unity的使用(IOC容器 DI注入 AOP面向切面)
第一步:使用Unity需要nuget引入6个包UnityUnity.AbstractionsUnity.ConfigurationUnity.ContainerUnity.InterceptionUnity.Interception.Configuration第二步:固定写法//配置UnityContainer IUnityContainer conta...原创 2019-12-07 22:20:09 · 2753 阅读 · 0 评论 -
C# RSA加密封装(工具九)
/// <summary> /// RSA ECC /// 可逆非对称加密 /// 非对称加密算法的优点是密钥管理很方便,缺点是速度慢。 /// </summary> public class RsaEncrypt { /// <summary> /// 获取加密/解密对 ...原创 2019-12-07 19:36:06 · 2875 阅读 · 0 评论 -
C# DES 加密封装(工具八)
public class DesEncrypt { private static byte[] _rgbKey = ASCIIEncoding.ASCII.GetBytes(Constant.DesKey.Substring(0, 8));//自定义密钥 private static byte[] _rgbIV = ASCIIEncoding.ASCII.G...原创 2019-12-07 19:30:32 · 2568 阅读 · 0 评论 -
C# MD5加密封装(工具七)
/// <summary> /// 不可逆加密 /// 1 防止被篡改 /// 2 防止明文存储 /// 3 防止抵赖,数字签名 /// </summary> public class MD5Encrypt { #region MD5 /// <summary> ...原创 2019-12-07 18:57:56 · 2706 阅读 · 0 评论 -
JSON 序列化反序列化(工具六)
public class JsonHelper { #region Json /// <summary> /// JavaScriptSerializer /// </summary> /// <typeparam name="T"></typeparam> ...原创 2019-12-04 17:21:11 · 1688 阅读 · 0 评论 -
IO相关的操作类封装【文件的读取遍历创建等等】(工具五)
一:图片相关操作类```csharppublic class ImageHelper { private static string ImagePath = ConfigurationManager.AppSettings["ImagePath"]; private static string VerifyPath = ConfigurationMan...原创 2019-12-03 22:22:47 · 1250 阅读 · 0 评论 -
EF ORM底层原理sql语句拼装【解决多条件查询的问题】(工具四)
一:重写表达式目录树条件Visitorpublic class ConditionBuilderVisitor : ExpressionVisitor { private Stack<string> _StringStack = new Stack<string>(); public string Condition() ...原创 2019-12-03 19:35:06 · 1040 阅读 · 0 评论 -
C# 类映射的四种方法【解决硬编码的问题】(工具三)
方法一:泛型缓存+表达式目录树实现Mapperpublic class ExpressionGenericMapper<TIn, TOut>//Mapper`2 //正对于每两个不同类型的组合都会生成副本 { private static Func<TIn, TOut> _FUNC = null;// 在每个副本中都有一个委托 st...原创 2019-12-01 16:58:14 · 2266 阅读 · 0 评论 -
C# 根据数据库自动生成实体类(工具二)
数据库相关的sql//获取所有的数据库名private static string GetAllDataSql = "SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME";//获取所有的表名private static string GetAllTableSql = "SELECT name FROM sys.tables wher...原创 2019-11-26 23:38:19 · 6113 阅读 · 2 评论 -
ADO.NET ORM数据库增删改查封装(工具一)
约束public abstract class BaseModel{ public int Id { get; set; }}连接字符串public static readonly string Customers = ConfigurationManager.ConnectionStrings["Customers"].ToString();通用数据库字符串public c...原创 2019-11-26 18:27:49 · 703 阅读 · 4 评论