随笔 - 410
文章 - 0
评论 - 519
阅读 -
147万
07 2016 档案
string to byte[]
摘要:在平常的开发过程中,经常碰到需要将string转化成byte[]字节数组的情形,有两种方法,在这里总结一下。 使用MemoryStream 代码如下。 1 using (MemoryStream sb = new MemoryStream()) 2 { 3 using (var writer = new ...
阅读全文
json序列化时datetime的处理方法
摘要:.net自带的json序列化器,JavaScriptSerializer和DataContractJsonSerializer,都是序列化成微软的datetime json格式,e.g. "\/Date(1198908717056)\/" 如果你将json序列化器换成json.net,可能会碰到序列化datetime格式的问题。 json.net的行为是这样的。 4.5,序列化成ISO标准时...
阅读全文
dll版本冲突的解决方法
摘要:问题描述 当运行站点或者控制台等程序时,如果项目引用的dll版本与其它dll所依赖的dll版本不一致,就会报未能加载程序集的错误。错误信息为: 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (...
阅读全文
.net中的序列化
摘要:常见的序列化格式和方法 在.net中,常见的序列化格式主要有json,二进制和xml,总结如下表格。 注意事项 关于实体特性标注规则: 1,.net中所有用于序列化的实体的class上应该加上[Serializable]标记,如果不加的话,json序列化的时候没有问题,但是使用BinaryFormatter进行二进制序列化的时候就会报错。 2,如果应用在wcf中,所有实体的class...
阅读全文
tfs中如何创建团队项目及如何操作团队项目
摘要:创建团队项目集合 tfs server管理控制台\团队项目集合页面。选择'创建集合'链接,按向导即可创建项目集合。 创建团队项目 创建好团队项目集合后,就要开始创建团队项目了。 进入vs,连接上tfs服务器后,从下面菜单选择'新建团队项目...' 然后,输入团队项目名称,过程模板选择Agile,源代码管理选择tfs,然后直到完成即可创建一个团队项目。 删除团队项目 为了测试,...
阅读全文
如何更方便地调试javascript代码
摘要:开发者工具 现在一般的浏览器都内置了开发者工具,快捷键F12可以打开,如Chrome浏览器下,Sources面板下找到对应的js文件 这是首选方法,但是对于SPA程序(比如easyui),可能找不到内嵌页面。所以如果是SPA程序,可能要想其它方法。 vs下在js代码处断点 这种方法对于SPA内嵌页面也没有用,但是可以使用debugger关键字手动设置断点,如下。 如果是用IE的话...
阅读全文
.net中如何发送HTTP请求网络资源
摘要:应用场景 应该说只要是需要通过发送Http请求获取网络资源的地方都要使用它,网络资源可以是指以URI来表示的资源,比如web api接口等。 HttpWebRequest .net2.0 ~ .net4.0使用HttpWebRequest 代码如下: 1 //.net2.0 ~ .net4.0使用HttpWebRequest 2 va...
阅读全文
基于任务的异步模式(TAP)
摘要:Task .net 4.0为我们带来了Task的异步,我们有以下三种方法创建Task。 1,Task.Factory.StartNew,比较常用。 2,Task.Run,是.net 4.5中增加的。 3,Task.FromResult,如果结果是已计算,就可以使用这种方法来创建任务。 下面就以Task.Factory.StartNew继续来实现前面的那个例子,代码如下。 ...
阅读全文
基于事件的异步模式(EAP)
摘要:什么是EAP异步编程模式 EAP基于事件的异步模式是.net 2.0提出来的,实现了基于事件的异步模式的类将具有一个或者多个以Async为后缀的方法和对应的Completed事件,并且这些类都支持异步方法的取消、进度报告和报告结果。然而.net中并不是所有的类都支持EAP,总结起来有以下17个类支持EAP异步。 System.Object的派生类型: System.Activies.Wo...
阅读全文
异步编程模型(APM)模式
摘要:什么是APM .net 1.0时期就提出的一种异步模式,并且基于IAsyncResult接口实现BeginXXX和EndXXX类似的方法。 .net中有很多类实现了该模式(比如HttpWebRequest),同时我们也可以自定义类来实现APM模式(继承IAsyncResult接口并且实现BeginXXX和EndXXX方法),下面的Demo就以HttpWebRequest类来实现APM模式的异步...
阅读全文
Task
摘要:.net 4.0为我们带来了TPL(Task Parallel Library),其中Task相较ThreadPool线程池使用更简单,而且支持线程的取消,完成和失败通知等交互性操作,而这些是ThreadPool所没有的。并且Task是可以有返回值的。 传参 给异步方法传参,可以使用以下几种方法。 1 new Thread(Go1).Start("arg1");//最...
阅读全文
线程池
摘要:线程池与线程的不同 线程的创建是比较占用资源的一件事情,.NET 为我们提供了线程池来帮助我们创建和管理线程。Task是默认会直接使用线程池,但是Thread不会。如果我们不使用Task,又想用线程池的话,可以使用ThreadPool类。 Demo 上代码。 1 using System; 2 using System.Collections.Generic; ...
阅读全文
线程
摘要:AppDomain,进程和线程的关系 还是用图来说明比较容易理解。 可以总结为以下几句话。 1,进程可以理解为程序(.exe)的实例。线程可以理解为一个虚拟的CPU。 2,一个进程可包含多个线程和多个Appdomain。 3,一个线程可以穿梭在多个Appdomain中,但在同一时刻,线程只会处在其中一个Appdomain中。 前台线程和后台线程 1,前台线程和后台线程的区别在...
阅读全文