在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

标签:dotnet

C#

C#按照像素对图片进行放大

C#对图片进行放大且按照像素,使用C#指针(要启用非安全代码)。   using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Drawing; using System.IO; namespace ImageMagnifier { public class MagnifierImage { private int multiple = 2; public int Multiple { get { return multiple; } set { multiple = value; } } public Magnifier...

6年前 (2018-12-01) 1136℃ 0评论 0喜欢

C#

C#实现共享内存

共享内存 共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。 C#  调用Win32 系统APi实现共享内存: public class ShareMem { [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr SendMessage(IntPtr hWnd, int Msg,...

6年前 (2018-11-30) 2672℃ 0评论 19喜欢

C#

C#简单实现HTTP文件上传

之前对接一个接口,实现加密文件上传,于是写了一个简单的方法进行调用。 public static class HttpUtil { /// <summary> /// 向指定的URL进行post /// </summary> /// <param name="url"></param> /// <param name="bodyPartList"></param> /// <returns></returns> public static string MultipartPost(string url, List<FormBodyPart> bodyPartList , bool isBrowerUser...

6年前 (2018-11-15) 1438℃ 2评论 1喜欢

C#

判断登录的QQ是否已经加入指定的QQ群

一、背景 朋友给了一个小的Windows应用程序,打开这个应用程序会让登录QQ,然后会判断登录的QQ是不是已经加入了指定的QQ群。如果已经加入,则可以继续使用软件,否则就退出这个程序,大致就是这样。朋友希望知晓这种判断qq是否加入指定QQ群的方法。如下图: 二、分析 这里使用fiddler进行抓包看一下,通过抓包结果来看,这个程序首先访问了http://qun.qzone.qq.com/,然后进行了授权登录,登成功之后就会回调到http://qun.qzone.qq.com/上,然后所有群号一览无余,就可以判断指定的群号了,基本上就是上图看到的界面了。fiddler抓包图如下: 三、实现 这里使用Microsoft .net的Windows Form实现,使用WebBrowser控件加载http://qun.qzone.qq.com/,登录成功只有使用正则匹配指定的群号来完成操作。代码...

6年前 (2018-10-21) 1880℃ 3评论 7喜欢

.net core

.net core的MemoryCache缓存存取MemoryCacheHelper

/// <summary> /// 缓存帮助类 /// </summary> public class MemoryCacheHelper { private static readonly MemoryCache Cache = new MemoryCache(new MemoryCacheOptions()); /// <summary> /// 验证缓存项是否存在 /// </summary> /// <param name="key">缓存Key</param> /// <returns></returns> public stat...

6年前 (2018-10-14) 1321℃ 0评论 0喜欢

DotNet

BlogEngine.NET-博易sitemap自动生成插件

博易遵循 W3C 标准,具有极强的可扩展性、高性能、良好的 SEO 性能和非凡的用户体验。不仅如此,博易还拥有一批高质量的用户群,他们的支持使博易得以不断地发展。 博易不仅开源,而且免费。所有的技术支持全部都是无偿提供的!不过目前最新的BlogEngine.NET(博易)博客已经停止更新,现在主打了.net core的轻量级博客版本,叫Blogifier,接受有偿的主题定制等。不过无论是否收费,现在已经没有继续使用BlogEngine.NET(博易)这个博客了。之前使用过一段时间,自己也根据相关文档写了需要的一个插件,当文章发布后,产生(更新)根目录下的sitemap.xml。这里做个简单的记录。 using BlogEngine.Core.Web.Extensions; using System; using System.IO; using System.Web.Hostin...

6年前 (2018-10-07) 1130℃ 0评论 0喜欢

C#

C#利用ICSharpCode.SharpZipLib.dll实现对文件的压缩与解压

因为程序中需要对指定文件进行压缩,然后再对已压缩的文件进行加密上传,所以,在网上找了一个已经实现的方法就用了。结果不用不知道,用了就差点挂掉,网上找到的类中解压会出问题,竟然能多出很多数据,压缩多级目录竟然出现目录错乱等诸多问题。最终,对出现的问题也进行了相关的修改(未发现的问题就不晓得了),利用C#的开源组件ICSharpCode.SharpZipLib实现,以下对代码就做下记录。 public static class ZipUtil { #region 压缩 /// <summary> /// 递归压缩文件夹的内部方法 /// </summary> /// <param name="folderToZip">要压缩的文件夹路径</p...

6年前 (2018-10-04) 1215℃ 0评论 0喜欢

.net core

.net Core 中DateTime在Linux Docker中与Windows时间不一致

最近写了一个.net core项目,部署到CentOS并在docker上运行的时候,发现DateTime.Now获取的时间与Windows不一致(定时执行的任务,晚了8个小时),在Windows中可以正确的获得本地时间,而在Linux CentOS 的Docker环境中获取的时间少了8个小时。通过Linux命令查看本机时间,本地时间正确,但.net core在Docker运行获取时间依然是少8个小时。猜测可能是时区的问题,然后就找到了NodaTime的一个库进行获取统一时区的时间,完成后Linux CentOS的Docker环境上获取的时间就与Windows中保持了一致。 NodaTime库需要下载相关包,也可以直接使用Nuget下载。 项目地址 nodatime项目git开源nodatime官网 新增一个DateTime扩展方法: pu...

6年前 (2018-09-30) 3252℃ 0评论 17喜欢

C#

Unix timestamp与C# DateTime 相互转换

Unix时间戳(Unix timestamp) Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用. 因业务需求,需要与银行进行接口对接。因为的银行接口中是有校验时间且时间格式要求为Unix timestamp,所以就使用C#进行了相关的转换。 public static class DateTimeExtension { /// <summary> /// DateTime转换成Unix timestamp /// </summa...

6年前 (2018-08-16) 463℃ 0评论 0喜欢

C#

C#实现多个文件(mp3)合并

友情提示以下所诉的音频合并仅仅针对mp3,其他类型音频文件可能存在差异,敬请注意。 公司项目存在多媒体叫号功能,此功能在XP系统上读的速度是可以的,但是在Window7以及以上版本系统读的速度非常慢(不连贯,难以接受)。现在实现方式根据信息拼接了不同的MP3文件,然后进行顺序读取。但是很奇怪为什么在更高版本系统中使用会变的异常的慢,让人难以接受。为了解决这个问题想到了2个方案: 使用flash音乐播放器进行列表播放,但是很多的网页播放器不具备与JavaScript交互的功能,甚至没有列表播放功能。(没有发现其他好用的播放器)对多个MP3文件进行合并后进行播放 经过测试否决了第一种方式,因为压根没有找到一款适合的网页播放器,重新写太费时间了。第二种方式可以解决问题。所以就使用了这个简单的方法来修改现有叫号功能在高版本系统播放缓慢的问题。基本代码如下: using Sy...

8年前 (2016-12-15) 3531℃ 6评论 13喜欢

DotNet

ADO.NET基础参数化SQL查询

参数化查询(Parameterized Query )是指在设计与数据库链接并访问数据时,在需要填入数值或数据的地方,使用参数 (Parameter) 来给值,这个方法目前已被视为最有效可预防SQL注入攻击 (SQL Injection) 的攻击手法的防御方式。下面将重点总结下Parameter构建的几种常用方法。     说起参数化查询当然最主要的就是如何构造所谓的参数:比如,我们登陆时需要密码和用户名,一般我们会这样写sql语句,select count(*) from username where names=@names and  passwd=@passwd,为了防止sql注入,我们该如何构建@names和@passwd两个参数呢,下面提供7种(其实大部分原理都是一样,只不过代码表现形式不一样,以此仅作对比,方便使用)构建参数的方法,根据不同的情况选用合适的方法即可: 通用数据库...

8年前 (2016-05-05) 640℃ 0评论 1喜欢

C#

C#判断闰年的几种方法

润年 闰年 闰年是公历中的名词,闰年分为普通闰年和世纪闰年。 普通闰年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年) 世纪闰年:能被400整除的为世纪闰年。(如2000年是闰年,1900年不是闰年) 闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。闰年共有366天(1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天)。 凡阳历中有闰日(二月为二十九日)的年;闰余(岁余置闰。阴历每年与回归年相比所差的时日) 注意闰年(公历中名词)和闰月(农历中名词)并没有直接的关联,公历中只分闰年和平年,平年有365天,而闰年有366天(2月中多一天) 平年中也可能有闰月(如2...

8年前 (2016-04-05) 937℃ 0评论 1喜欢

C#

C#使用反射为两个对象的相同属性赋值

最近有遇到两个对象的赋值问题,两个对象的属性几乎都一样的,所以写了个通过反射获取属性的然后赋值的方法,把一个对象的属性的值赋值给另对象。 public static class MapperHelper { /// <summary> /// 反射实现两个类的对象之间相同属性的值的复制 /// 适用于初始化新实体 /// </summary> /// <typeparam name="R">返回的实体</typeparam> /// <typeparam name="S">数据源实体</typeparam> /// <param name="s">数据源实体</param&...

9年前 (2015-02-20) 697℃ 0评论 1喜欢