c#应用
文章平均质量分 84
丰云
I coding I enjoying
展开
-
自己封装的一个支持回调和独立线程的异步发送邮件的类
经常看到有很多朋友在网上找发送邮件的代码,也经常有很多朋友问各种邮件发送中出的问题,因此把自己写的一个邮件发送类整理了一下,贴出来,给大家参考借鉴。虽然这个代码不算完整,但贵在简练实用,便于阅读和修改扩展,里面还包含了写日志的简练方法,非常实用。原创 2016-05-22 14:00:10 · 1247 阅读 · 0 评论 -
C#异步调用与回调的一点心得与疑惑
我的及时通讯项目里,考虑到消息转发的效率,所有后台耗时的操作,都采用异步处理。但今天测试异步调用的时候,产生了一些疑惑:开始,我的代码如下:实际测试后,发现这样异步有很多问题。后来代码调整成下面这样,就完全没问题了:也就是说,异步调用,根本不需要把方法用task async 来定义,直接用task.run()方法来调用普通方法,就可以了。这样说来,async和await到底有什么用呢?...原创 2018-04-26 11:09:10 · 521 阅读 · 0 评论 -
C#关于base64字符串转图片的错误处理
今天项目中需要做图片上传,且必须上传的是base64图片字符串 ,然后后台接收后保存为图片。整个过程很容易就实现了,唯独在后台将base64转字节流的时候报错:base64字符串:“data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfK...”代码:var str = Convert.FromBase64String(B...原创 2018-05-03 09:50:56 · 3210 阅读 · 0 评论 -
Signalr自托管最简实践
最近几天,项目要开发一个即时通讯的产品,同时需要把服务端嵌入到已有的winform程序里,也就是说,不能依赖网站发布器(iis、tomcat、apache等)。于是查了大量资料,发现绝大部分的资料,都是讲的如何托管在web应用里,真正其他托管的很少,即便有,往往也介绍不全,照抄之后,跑不起来。于是花了一些时间,写了一个自托管的signalr应用,现在把最简配置记录如下,希望对大家有所帮助。首先,这...原创 2018-04-19 15:21:46 · 1121 阅读 · 5 评论 -
多线程方法修改winform窗口内容的推荐方法
今天给项目里写一个守护程序,需要开多线程做一些数据处理,DBA说需要界面显示当前工作状态。大家都知道,由于窗口多开的线程,跟窗口不是一个线程,不能直接控制窗口,否则会导致锁死窗口。所以,实现这个效果需要特别处理,一般都用委托和事件实现。虽然几年前做过类似的效果,但代码找不到了。于是参考网上资料,用一个新的相对简单的方式,用到了委托,没有用事件,实现了这个效果。现将核心代码记录下来,以备后用:pub...原创 2018-04-11 16:52:31 · 549 阅读 · 1 评论 -
网吧收银费用计算的对象及算法设计
本代码针对某公司笔试题而来,没有经过验证,请各位大侠捉虫/* * 网吧收银计算费用的类对象及方法 * 规则: * 1. 上午八点到中午12点为2元一小时,下午从12点到晚上10点为3元一小时 * 半小时计费一次,不足半小时按半小时计算 * 2. 包夜从晚上10点到早上8点,一次性收费10元 * 要求: * 1. 时间节点及费用可配置 * 2. 实现基本的对象类及算法 * 说...原创 2018-03-12 17:03:10 · 1575 阅读 · 2 评论 -
关于部分手机拍照上传的图片旋转显示的c#解决方案
这两天项目里出了一个妖异的问题,就是部分客户上传的图片旋转了90度。刚开始收到这个反馈,我们都觉得很搞笑,一定是客户图片本身旋转了。。。。因为这么多年,从没听说过有这种事。可客户确认上传的图片没有问题后,我们顿时都觉得问题有些大条了。。。。经过排查,最后确定了,是客户用苹果手机拍照上传导致的。上网找了一些资料,都只是介绍了图片的相关属性,没有一篇给出解决方案的,没办法,只能原创 2017-11-29 16:46:11 · 3409 阅读 · 2 评论 -
C#视频取帧图的比较靠谱方法
由于项目里页面有许多视频资料需要展示给用户查看,因此需要做一个视频列表,原设计是列表显示视频第一帧图,但实际上很多视频第一帧是纯黑底色。于是想到用js利用canvas截图,最后发现由于浏览器跨域限制,这种方法只能取内部视频的帧图。问题是,现在谁还把大量视频资料放在自己的服务器上呢,那不是找死吗。。。。唉。。。。没办法,只能再想招了,最后只能用c#后台逐个视频取对应帧图,然后跟视频路径一起存...原创 2018-01-18 15:50:24 · 9756 阅读 · 1 评论 -
修复图片旋转颠倒问题的小方法
项目里有大量用户上传的文章,这些文章里有很多图片,其中一些图片的格式跟后缀名不一致。别问我为什么,我也不知道网上怎么这么多错乱的图片。。。这就导致一个问题:这些不正常的图片,有可能在IE浏览器上不能显示!没办法,我们不能强制用户做什么,只能默默的给他们插屁股。。。。今天为此写了一个修复图片格式的方法: public static void AlterImageFo原创 2018-01-23 14:16:30 · 803 阅读 · 0 评论 -
简单封装的Stripe支付方法
最近项目需要用到Stripe支付,于是做了一个简单封装,现在贴出来,也许以后用得着首先,需要在Stripe官方网站申请注册自己的支付帐号,并获取测试和正式用的前后端校验码。然后,项目后台需要添加Stripe的dll引用,可以用Nuget安装Stripe.net,也可以自己下载dll然后直接添加引用,这里不赘述了。需要提醒的是,测试用的银行卡信息如下:卡号:4242 4242 424原创 2017-12-13 10:51:20 · 8371 阅读 · 2 评论 -
cookie安全性设置的注意事项
我的一个项目里实现了remember me功能,两年了,一直用得非常好,最进一段时间,这个功能却失效了,迟迟未能解决,让我非常郁闷。今天下定决心,花一整天解决这个问题。特意创建了一整个调试环境。在反复的排查之下,终于让我抓住了问题的尾巴 原来,前段时间,网站响应潮流趋势,统一上ssl,就是这个ssl导致我的remember me失效。。。。。 而真正的原因是原创 2017-06-09 17:27:02 · 1218 阅读 · 0 评论 -
封装的简易多线程.net邮件发送类
项目中使用的邮件发送类,自己封装的,多线程、自带队列、异步发送,回调方法可捕获发送中产生的错误消息,留存参考:原创 2017-04-13 09:40:26 · 1302 阅读 · 0 评论 -
跨客户端(浏览器)登录,信息同步的解决方案
前几天写过一篇文章专门介绍我之前采用的共享session的解决方案,但一交付测试,马上发现了致命错误,所以那篇文章也被我删除了这两天一直在继续改进这个解决方案,辗转几次,都有问题,直到今天上午,才突然灵光一闪,豁然开朗之前一直被sessionid这个东西迷惑了,今天突然明白了,我既然是以帐号为单位缓存,要跨客户端,那跟sessionid就没有一毛钱的关系了,干嘛还要用他呢。。。原创 2017-04-01 14:08:53 · 3943 阅读 · 0 评论 -
后台HttpRequest访问https接口的方法
因为项目需要,写了一个后台调用https接口的方法,记录下来,以备后用:1. 封装的访问方法using System.Collections.Generic;using System.IO;using System.Net;using System.Net.Security;using System.Security.Cryptography.X509Certificates;原创 2017-03-23 09:44:56 · 6533 阅读 · 0 评论 -
Linq查询数据集取得排序后的序列号(行号)
今天群里有同学问如何用linq取结果集的行号,查了一下资料,发现linq有很简单的方法可以实现,现记录下来,以备参考:原创 2016-08-24 09:59:14 · 10514 阅读 · 4 评论 -
C#语法灵活运用之排列组合算法
今天群里有朋友求一个排列组合算法,题目是给定长度,输出所有指定字母的组合。如指定字母a、b、c、d、e、f,长度为2,则结果应为:aa、ab、ac ... ef、ff。有朋友给出算法,很有特色: var n = 0; for (int i = 0; i < Math.Pow(26, n); ++i) {原创 2016-07-19 13:53:26 · 2877 阅读 · 1 评论 -
C#自托管应用的最简配置
为了封装一个聊天模块,这些天真是绞尽脑汁,不过也有很多收获,比如下面这个自托管的最简配置,不仅内置了signalr服务,还内置了webapi服务,静态资源文件服务。为了分享这份喜悦,直接上代码首先是托管应用start类的配置方法: public class Startup { public void Configuration(IAppBuilder app) ...原创 2018-05-30 15:53:43 · 1198 阅读 · 1 评论