随笔分类 -  C#

摘要:/// /// 类说明:Assistant/// 联系方式:361983679 /// 更新网站:http://www.cckan.net/thread-655-1-1.html/// using System;using System.Web;using System.Collections;namespace DotNet.Utilities{ public class CacheHelper { /// /// 获取数据缓存 /// /// 键 public static object GetCache(string CacheKey) { System.Web.Caching.Ca.. 阅读全文
posted @ 2014-03-28 17:34 armyfai 阅读(4206) 评论(0) 推荐(0) 编辑
摘要:HttpListener提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。通过它可以很容易的提供一些Http服务,而无需启动IIS这类大型服务程序。注意:该类仅在运行 Windows XP SP2 或 Windows Server 2003 操作系统的计算机上可用。使用Http服务一般步骤如下:创建一个HTTP侦听器对象并初始化添加需要监听的URI 前缀开始侦听来自客户端的请求处理客户端的Http请求关闭HTTP侦听器其中3,4两步可以循环处理,以提供多客户多次请求的服务。创建一个HTTP侦听器对象 创建HTTP侦听器对象只需要新建一个HttpListener对象即可。HttpLis 阅读全文
posted @ 2014-03-27 17:40 armyfai 阅读(5106) 评论(0) 推荐(0) 编辑
摘要:使用并行编程可以同时操作多个委托,在介绍并行编程前先简单介绍一下两个泛型委托System.Func与System.Action。Func是一个能接受多个参数和一个返回值的泛型委托,它能接受0个到4个输入参数, 其中 T1,T2,T3,T4 代表自定的输入类型,TResult为自定义的返回值。public delegate TResult Func()public delegate TResult Func(T1 arg1)public delegate TResult Func(T1 arg1,T2 arg2)public delegate TResult Func(T1 arg1,T2 ar 阅读全文
posted @ 2014-03-18 14:31 armyfai 阅读(4562) 评论(0) 推荐(0) 编辑
摘要:Lambda表达式详解前言 1、天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西。 2、夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅。据说它是微软自c#1.0后新增的最重要的功能之一。lambda简介 lambda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者 “成为”。运算符将表达式分为两部分,左边指定输入参数,右边是lambda的主体。 lambda表达式: 1.一个参数:param=>expr 2.多个参数:(param-list)=>expr 上面这些东西, 阅读全文
posted @ 2014-03-13 12:25 armyfai 阅读(224) 评论(0) 推荐(0) 编辑
摘要:1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace 委托与发布订阅者模式 8 { 9 10 /** 11 * 机器Machine为被订阅者,维修工Repairer为订阅者 12 * 工人(订阅者)注册机器的不同事件,并注册回调函数以当相应事件发生时进行处理 13 * 不同的工人可以只关注他们各自感兴趣的事件 14 */ 15 // 机器类 16 public ... 阅读全文
posted @ 2014-03-13 11:05 armyfai 阅读(2445) 评论(2) 推荐(0) 编辑
摘要:双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交换模式使服务端回调(Callback)客户端操作成为可能。一、两种典型的双工MEP1.请求过程中的回调这是一种比较典型的双工消息交换模式的表现形式,客户端在进行服务调用的时候,附加上一个回调对象;服务在对处理该处理中,通过客户端附加的回调对象(实际上是调用回调服务的代理对象)回调客户端的操作(该操作在客户端执行)。整 阅读全文
posted @ 2014-03-11 16:46 armyfai 阅读(287) 评论(0) 推荐(0) 编辑
摘要:订阅发布模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。 将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相应对象间的一致性,这样会给维护、扩展和重用都带来不便。当一个对象的改变需要同时改变其他对象,而且它不知道具体有多少对象需要改变时,就可以使用订阅发布模式了。 一个抽象模型有两个方面,其中一方面依赖于另一方面,这时订阅发布模式可以将这两者封装在独立的对象中,使它们各自独立地改变和复用。订阅发布模式所做的工作其实就是在解耦合。让耦合的双方都依赖于抽象,而不是依赖于具 阅读全文
posted @ 2014-03-11 15:20 armyfai 阅读(878) 评论(0) 推荐(0) 编辑
摘要:C#操作MSMQ示例,示例代码:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Messaging;namespace MessageQueues { class Program { staticvoid Main(string[] args) . 阅读全文
posted @ 2014-03-07 17:35 armyfai 阅读(1700) 评论(0) 推荐(0) 编辑
摘要:using System;using System.Collections.Generic;using System.Text;using System.Messaging;using System.Data;using System.Data.SqlClient;namespace msmq{ class Program { staticvoid Main(string[] args) { string database = args[0]; string path =".\\private$\\"+ args[1]; if (!MessageQueue.Exists(p 阅读全文
posted @ 2014-03-07 17:24 armyfai 阅读(3401) 评论(0) 推荐(0) 编辑
摘要:[csharp]view plaincopyprint?usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.Serialization.Formatters.Binary;usingSystem.IO;namespacesmsForCsharp.CRC{//////消息CRC校验算法///publicclassCRC{publicstaticStringgetCrc16Code(StringcrcString){//转换成字节数组byte[]creBytes=HexString2Byt 阅读全文
posted @ 2014-02-25 13:57 armyfai 阅读(37316) 评论(0) 推荐(0) 编辑
摘要:private static ushort[] crctab = new ushort[256]{ 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff... 阅读全文
posted @ 2014-02-25 10:22 armyfai 阅读(5360) 评论(2) 推荐(0) 编辑
摘要:c语言的#include staticshort const wCRC16Table[256] = { 0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241, 0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440, 0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40, 0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09... 阅读全文
posted @ 2014-02-24 17:13 armyfai 阅读(2081) 评论(0) 推荐(0) 编辑
摘要:我们先说一下通讯协议。通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确。基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44 05 01 02 03 04 05EA 这里我假设的一条数据,协议如下: 数据头: AA 44 数据长度: 05 数据正文: 01 02 03 04 05 校验:EA 一般数据的校验,都会采用常用的方式,CRC16,CRC32,Xor。 有的数据安全要求高的,不允许丢包的,可能还要加入重发机制或是加入数据恢复算法,在校验后根据前面数据添加恢复字节流以恢复数据。 阅读全文
posted @ 2014-02-22 12:04 armyfai 阅读(8051) 评论(0) 推荐(2) 编辑
摘要:Query.All("name", "a", "b");//通过多个元素来匹配数组 Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件 Query.EQ("name", "a");//等于 Query.Exists("type", true);//判断键值是否存在 Query.GT("value" 阅读全文
posted @ 2014-02-21 09:32 armyfai 阅读(276) 评论(0) 推荐(0) 编辑
摘要:此处用mysql中的sql语句做例子,C# 驱动用的是samus,也就是上文中介绍的第一种.引入项目MongoDB.dll//创建Mongo连接 var mongo = new Mongo("mongodb://localhost"); mongo.Connect(); //获取一个数据库,如果没有会自动创建一个 var db = mongo.GetDatabase("movieReviews"); //创建一个列表,并为这个列表创建文档 var movies = db.GetCollection("movies");连接没问题之后, 阅读全文
posted @ 2014-02-21 09:27 armyfai 阅读(372) 评论(0) 推荐(0) 编辑
摘要:public static long hash(byte[] digest, int nTime) { long rv = ((long)(digest[3 + nTime * 4] & 0xFF) << 24) | ((long)(digest[2 + nTime * 4] & 0xFF) << 16) | ((long)(digest[1 + nTime * 4] & 0xFF) << 8) | ((long)digest[0 + nTime * 4] & 0xFF); return rv & 0xffffffff 阅读全文
posted @ 2014-02-18 16:25 armyfai 阅读(173) 评论(0) 推荐(0) 编辑
摘要:TextReader 和StreamReader目录:为什么要介绍 TextReader?TextReader的常用属性和方法TextReader 示例从StreamReader想到多态简单介绍下Encoding 编码StreamReader 的定义及作用StreamReader 类的常用方法属性StreamReader示例本章总结为什么要介绍 TextReader?首先让我们来理解下什么是TextReader,从字面上的意思入手的话,大家就会恍然大悟了一个对于Text的读取器,可是又是怎么读取的呢?聪明的你肯定会想到,当然是通过连续的字符进行读取, 为什么在介绍StreamReader之前, 阅读全文
posted @ 2014-02-18 14:26 armyfai 阅读(1279) 评论(0) 推荐(0) 编辑
摘要:目录:什么是Stream?什么是字节序列?Stream的构造函数Stream的重要属性及方法Stream的示例Stream异步读写Stream 和其子类的类图本章总结什么是Stream?MSDN 中的解释太简洁了: 提供字节序列的一般视图(我可不想这么理解,这必定让我抓狂,我理解的流是向自然界的河流那样清澈而又美丽,c#中的流也是一样,许多技术或者说核心技术都需要流的帮忙)那什么是字节序列呢?其实简单的来理解的话字节序列指的是:字节对象都被存储为连续的字节序列,字节按照一定的顺序进行排序组成了字节序列那什么关于流的解释可以抽象为下列情况:打个比方:一条河中有一条鱼游过,这个鱼就是一个字节,这. 阅读全文
posted @ 2014-02-18 14:14 armyfai 阅读(460) 评论(0) 推荐(0) 编辑
摘要:C# SerializableSystem.SerializableAttribute串行化是指存储和获取磁盘文件、内存或其他地方中的对象。在串行化时,所有的实例数据都保存到存储介质上,在取消串行化时,对象会被还原,且不能与其原实例区别开来。只需给类添加Serializable属性,就可以实现串行化实例的成员。并行化是串行化的逆过程,数据从存储介质中读取出来,并赋给类的实例变量。例: 1 [Serializable] 2 publicclass Person 3 { 4 public Person() 5 { 6 } 7 8 publicint Age; 9 publicint ... 阅读全文
posted @ 2014-02-17 17:00 armyfai 阅读(198) 评论(0) 推荐(0) 编辑
摘要:目录1. 特殊的数据成员........................................................................... 12. 数组(array)............................................................................. 13. 命名空间(namespace)................................................................. 24. 方法的参数传递......................... 阅读全文
posted @ 2014-02-17 08:56 armyfai 阅读(346) 评论(0) 推荐(0) 编辑