
C#
windowsliusheng
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
.net 6使用Autofac按程序集构造函数注入
(1)添加Autofac.Extensions.DependencyInjection引用(2)Program类中添加如下代码builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory())//Step 1:容器替换 .ConfigureContainer<ContainerBuilder>(builder =>{ //服务层程序集命名空间 Assembly userS...原创 2022-02-04 22:30:39 · 1636 阅读 · 0 评论 -
c# 互斥锁
var result = mutex.WaitOne(0);//申请锁并设置等待时间,超过时间则放弃等待,单位毫秒:-1=(无限期等待),0=(如果 millisecondsTimeout 为零,则该方法不会阻止。 它将测试等待句柄的状态并立即返回。) if (result) { //此处为保护的资源 mutex.ReleaseMutex();//释放 ..原创 2020-12-11 21:50:14 · 750 阅读 · 0 评论 -
c# List分组转换为List<string>
var que = GlobalData.QueList.GroupBy(x => new { x.Type }).Distinct().SelectMany(t => new List<string> { t.Key.Type });List<string> list= que.ToList();原创 2019-12-22 18:17:43 · 676 阅读 · 0 评论 -
c# 三种泛型委托Func<T>、Action<T>、Predicate<T>
Func<T>委托有返回值的泛型委托,封装了最多可以传入16个参数,方法返回void的不能使用Func<T>委托。Action<T>委托返回值为void,封装了最多可以传入16个参数,用法与Func<T>相同。Predicate<T>委托返回值为bool类型的委托,可以被Func<T>代替。使用示例:public...原创 2019-11-16 16:49:42 · 853 阅读 · 0 评论 -
C# AESHelper
public class AESHelper { //定义默认密钥向量 private static byte[] _aesKetByte = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF, 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; ...翻译 2019-07-03 15:40:29 · 1164 阅读 · 0 评论 -
CAP
CAP是什么CAP是一个处理分布式事务的解决方案,遵循最终一致性并基于消息队列实现的分布式事务中间件。CAP原理消息持久化CAP使用本地数据库“Cap.Published”表持久化发布的消息。 消息成功发布到消息队列后“Cap.Received”表会更改状态为“Successed”,CAP启动消息队列持久化功能。消息向MQ发送 消息从MQ消费 订阅者方法执行应...翻译 2019-07-15 11:29:43 · 1627 阅读 · 0 评论 -
C# 获取调用方法名和命名空间
StackTrace ss = new StackTrace(true); //index:0为本身的方法;1为调用方法;2为其上上层,依次类推 MethodBase mb = ss.GetFrame(1).GetMethod(); //本文地址:http://www.cnblogs.com/Interk...转载 2019-07-11 11:17:46 · 2553 阅读 · 0 评论 -
Linux CentOS7中部署Asp.Net Core
安装dotnet产品提要要开始安装.NET,您需要注册Microsoft签名密钥并添加Microsoft产品提要。每台机器只需要做一次。 打开命令提示符并运行以下命令:sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascSudo sh -c 'echo -e "[packages-microsoft-com...原创 2019-07-15 16:40:50 · 212 阅读 · 0 评论 -
c# http请求
/// <summary> /// 请求URL /// </summary> /// <param name="url">URL地址</param> /// <param name="inputParam">接收参数</param> /// &l...翻译 2019-07-26 16:38:04 · 2017 阅读 · 0 评论 -
Winform使用多线程操作控件出现“线程间操作无效: 从不是创建控件的线程访问它。”
问题:使用多线程操作控件出现“线程间操作无效: 从不是创建控件“comboBox1”的线程访问它。”原因:微软因为安全原因不允许不是同一个线程中操作控件,只允许同一个线程或进程中操作。解决:1.使用控件的Invoke()方法解决 2.放入窗体的构造函数中,“InitializeComponent()”方法后执行以下是使用控件Invoke()方法解决: pub...原创 2019-08-30 14:03:19 · 1546 阅读 · 0 评论 -
ASP.NET Core使用Swagger
NuGet中引用“Swashbuckle.AspNetCore”组件。 Startup类中ConfigureServices方法添加如下代码配置://注册Swagger生成器,定义一个和多个Swagger 文档services.AddSwaggerGen(c =>{c.SwaggerDoc("v...原创 2019-06-20 13:04:14 · 2087 阅读 · 0 评论 -
c# DataTable转集合、集合转DataTable、对象转JSON、JSON转对象
1.DataTable转集合public class ModelConvertHelper<T> where T : new() { public static IList<T> ConvertToModel(DataTable dt) { IList<T> ts = new List<T...翻译 2018-09-25 16:50:32 · 2654 阅读 · 0 评论 -
c# 获取文件夹最后一级名称
DirectoryInfo info = new DirectoryInfo(文件夹路径);String path = info.Parent.Parent.FullName;string name=info.Name;//获取当前路径最后一级文件夹名称原创 2018-11-22 18:23:42 · 7841 阅读 · 0 评论 -
c# 根据桌面快捷方式获取程序安装目录
1.在项目中添加“Windows Script Host Object Model”的COM引用2.代码//string strDesktopPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory),"xx.lnk");//当前系统桌面路径 if...转载 2018-11-27 16:07:13 · 1413 阅读 · 0 评论 -
C# 生成动态实体并赋值
1.第一种方法 使用Dynamic 支持.net4.0以上版本支持/// <summary>/// 使用dynamic根据DataTable的列名自动添加属性并赋值/// </summary>/// <param name="dt"></param>/// <returns></returns>public转载 2019-01-04 16:16:08 · 7858 阅读 · 2 评论 -
C# 判断字符串值是否是类的属性
public object ContainProperty(object instance, string propertyName) { if (instance != null && !string.IsNullOrEmpty(propertyName)) { PropertyIn...转载 2019-01-04 16:17:33 · 1091 阅读 · 0 评论 -
Revit 共享参数创建
//需引用Autodesk.Revit.DB.dll /// <summary> /// 共享参数 /// </summary> public class SharedParameter { private const string SHARED_PARAMETERS_FILE_NAME = "SharedPar...翻译 2019-01-09 17:19:52 · 616 阅读 · 0 评论 -
c# 爬取网页内容并查找相关数据示例
//根据网页地址获取网页内容public static string GetWebContent(string url) { string htmlCode; HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(u...原创 2019-03-09 00:10:30 · 1013 阅读 · 0 评论 -
C# 动态实例化
//实例化不在一个项目中的类 Type type1 = Type.GetType("命名空间名称.类名,命名空间名称"); Class1 class1 = (Class1)Activator.CreateInstance(type1); //实例化当前项目中的类 Type typ...原创 2019-03-06 17:27:49 · 1827 阅读 · 0 评论 -
简单工厂模式、工厂方法模式、抽象工厂模式区别
1.简单工厂模式优点:(1)适用于单个产品使用。 (2)内部产品发生变化,客户端不受影响,把变化的部分都集中到了一起。缺点:新增产品时工厂方法中要增加新的判断,违反了开放-封闭原则,但可以使用动态实例化类避免新增产品时增加新的判断。总结:简单工厂模式适用于产品类不多时适用。示例代码: public abstract class A { ...原创 2019-03-07 17:12:39 · 251 阅读 · 0 评论 -
C# 快速对比数据
1.相同列对比var data1 = dt1.AsEnumerable().Except(dt2.AsEnumerable(), DataRowComparer.Default); //差集 筛选不一样的数据返回对比的数据(如需显示被对比数据则把被对比的数据放到前面替换位置)var data2= dt1.AsEnumerable().Intersect(dt2.AsEnumerable...翻译 2019-03-22 17:14:17 · 3301 阅读 · 0 评论 -
C# 自定义配置文件节点操作
1.新建配置文件<?xml version="1.0" encoding="utf-8" ?><configuration> <configSections> <section name="Components" type="Mi.CompoentConfigurationSection,Mi"/> </configSe...翻译 2019-04-10 17:26:15 · 1237 阅读 · 0 评论 -
c# 什么时候使用抽象类,什么时候使用接口?
抽象类和接口 相同点: (1) 都可以被继承 (2) 都不能被实例化 (3) 都可以包含方法声明 (4) 派生类必须实现未实现的方法 区别: 1.C#中抽象类只能单继承,接口可以多继承。 2.抽象类可以定义字段、属性、方法实现。接口只能定义属性、索引器、事件、和方法声明,不能包含字段。 总结:抽象类应用在具有相同特征和行...原创 2019-05-15 16:59:04 · 2608 阅读 · 0 评论 -
设计安全HTTP接口方案
微信API接口传输:Token(长度3-32字符)、加密秘钥(43位字符组成)加密签名(token、时间戳、随机数)参数 描述signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。timestamp 时间戳nonce 随机数echostr 随机字符串开发者通过检验s...翻译 2019-06-06 16:58:11 · 1504 阅读 · 0 评论 -
Hangfire
1.Hangfire是什么?Hangfire是一个后台作业执行服务组件,可以集成在ASP.NET、ASP.NET Core、控制台应用程序、Windows服务等。2.Hangfire特点?(1)无需Windows服务或单独的进程。(2)支持持久化存储,存储方式可支持sqlserver、redis,mongodb等。(3)支持分布式作业处理(4)支持自动维护 ,无需执行手动存...原创 2019-06-18 14:09:52 · 1643 阅读 · 0 评论 -
c# datatow 转换Datatable
/// <summary> /// datatow 转换Datatable /// </summary> /// <param name="drArr"></param> /// <returns></returns> public原创 2018-09-17 15:32:30 · 157 阅读 · 0 评论