代码改变世界

随笔分类 -  .NET

Dynamic系列--Dynamic 与反序列化

2015-06-15 15:23 by Shawn.Cheng, 2922 阅读, 收藏,
摘要: 通常在调用其他站点的api时,如果返回的结果为 json数据,而我们又不想再重新定义实体类时,可以使用dynamic类型。 但是有以下需要注意的地方。 - 当内容为空时,反序列化结果为null- 当内容格式有误,不可反序列化时,将会抛出异常。- 内容正确时,得到的对象是 Dictionary (... 阅读全文

Workflow学习笔记 之Workflow HelloWord

2012-02-07 23:09 by Shawn.Cheng, 2111 阅读, 收藏,
摘要: 一点闲话 年前的时候,到北京了一周,把工作定了下来。年后,初十的火车,11的清晨,天未明的时候来到京城。从此,开始了人生的一个新的阶段。Ok,最近要学习很多新的知识了。不仅仅是专业知识,还有职场,各个方面。接下来,我们谈一下workflow的helloword,我们的第一个工作流应用程序。将分别使用模版和纯手工编写两种方式实现。首先我们利用vs的模板,构建我们的hello word程序 新建一个workflow的控制台应用程序如图所示(选择 Sequential Workflow Cons... 阅读全文

PetShop4.0 学习总结----数据库访问层结构分析

2011-12-15 18:16 by Shawn.Cheng, 2621 阅读, 收藏,
摘要: 最近在看PetShop4.0 ,暂且熟悉了一些数据库层的设计。看了看,其实也不是很复杂。主要就是使用了一个工厂 ,以及一个IOC依赖注入。我所画的类图如下(不是很标准,自己的UML 水品一般。。。)其中的web.config是我自己天上去的,主要就是为了说明一下IOC的问题。其中的Model主要定义了一些实体类。IDAL提供了数据库访问层的抽象,分别有SQLDAL 和OracleDAL去实现。DALFactory是一个反射工厂,通过读取配置文件中的配置,判断使用的那个DAL,然后利用反射生成相应的IDAL实例。DALFactory代码如下 public sealed class DataAcc 阅读全文

ASP.NET 中Http处理流程与 HttpModule,HttpHandler学习之初步认知

2011-12-14 17:14 by Shawn.Cheng, 2002 阅读, 收藏,
摘要: 本文只是对HttpModule和HttpHandler做最初步的了解。非菜鸟级别人士可直接无视。ASP.NET 中Http的请求流程 用户发出的客户端请求达到服务器后,会被服务端的inetinfo.exe 进程捕获,该进程将该http请求转交给asp.net_isapi.dll进程,然后通过http pipeline 管道(具体这是什么东西我也不清楚)传送给aspnet_wp.exe进程来处理。接下来就到了.net framework的httpruntime处理中心,处理完毕后,就发送给用户的浏览器。当http请求传送给httpruntime 的时候,首先会进入一个叫做H... 阅读全文

C#中的转换操作符

2011-10-12 17:49 by Shawn.Cheng, 272 阅读, 收藏,
摘要: 今天看到一个话题,说的是C#中的转换操作符,也就是说,我们可以通过编程,实现C#中的括号形式的显示和隐士转换。就像是 我 可以一个 int 然后隐式转换为的decimal,或者显示转换一下 Byte b= 5; int value = b; decimal de = a;可以通过关键字implicit operator 和 explicit operator 进行相应类例构造 来实现。可以查看.NET中有关decimal中的相关实现。等回头用了,再详细写出。 阅读全文

从设计意图看OUT参数和REF参数的区别与联系

2011-10-12 17:37 by Shawn.Cheng, 267 阅读, 收藏,
摘要: 学习并使用C#已经好久了,最近在看.NET框架程序设计,又对这些基础概念进行了一次回顾与加深。高手毕竟是高手,同样一个问题,虽然答案差不多,但是回答问题所站的角度却不同。下边是我对两者区别与联系的体会。Out参数和ref参数的基本用法这里不再详谈。要说他们的区别与联系,我们就必须说明二者的设计意图分别是什么。前者out,顾名思义,是为了输出,而后者ref是引用,是为了传入参数,二者设计意图不同那么使用的时候,就需要按照原本的意图去使用。由于意图不同,那么使用的时候也就有所差别,前者为了输出,那么就不必要保证在传入参数之前进行初始化,而后者由于目地是为了出入参数后使用,那么就必须保证传入参数之前 阅读全文

IL汇编语言介绍(译)

2011-10-10 16:22 by Shawn.Cheng, 251 阅读, 收藏,
摘要: 原文地址http://www.cnblogs.com/xiaoxiangfeizi/archive/2011/08/08/2130768.html原文作者潇湘妃子IL汇编语言介绍(译)最近在学习IL,在CodeProject上看到一篇老外的文章,介绍IL的,写的比较好,就翻译了一下,供大家参考。水平有限,请大家包涵,如果你想认真学习,推荐你最好去看原文,原文是Introduction to IL Assembly Language。介绍这篇文章介绍了基本的IL汇编语言知识,你可以用它从底层来分析你的.NET代码(任何.NET平台下的高级语言写的)。从底层,我说的底层是你的高级语言在编译器中完成 阅读全文

Name与x:Name的关系

2011-09-21 11:13 by Shawn.Cheng, 279 阅读, 收藏,
摘要: =============本文转自水之真谛http://blog.csdn.net/fantasiax/article/details/3499767作者很多文章都写地很好。在此表示感谢。============杂七杂八——Name与x:Name的关系小序:如果想用Google搜包含冒号的内容怎么办?比如我想搜x:Name这个字符串……原来,应该是这样——x::Name这世道,连搜索也要加转义,全民程序员,要不要人活了?正文:从第一天学习XAML语言开始,我就一直没分清为什么对于一个XAML标签既可以设置它的Name又可以设置它的x:Name。问过一些同事,大家好像对这种比较孔乙己的问题不太感 阅读全文

由StreamWriter.WriteLine 引发对C#多线程的深入思考(一)

2011-09-19 14:09 by Shawn.Cheng, 3274 阅读, 收藏,
摘要: 首先,StreamWriter线程安全么?答:StreamWriter 的构造以及StreamWriter.WriteLine(string)都是非线程安全的我们封装两个写日志的方法。底层都是由StreamWriter.writeline来实现.一个加锁,一个不加锁。将加锁的那个命名为safewritelog,另一个命名为unsafeWritelog.然后利用两个循环。不停的分别创建个线程,去写日志。测试看哪个会出现写异常。代码如下:namespace ThreadWriteLog{ class Program { private static object ob =... 阅读全文

C#中的线程同步----Join方法的使用实例

2011-07-28 01:05 by Shawn.Cheng, 255 阅读, 收藏,
摘要: 最近需要解决一个多线程问题,将这个问题抽象说来就是这个情况。有A B两个方法同时完成F工作,A B操作均比较耗时,且 B操作需要A操作完成后才能执行。现 要 A 和B同时运行n个线程。用数学化的语言描述一下/*************************** * 现有线程 A1,A2……Ai……Ak * 线程B1,B2,B3……Bi……Bk * Ai和Bi需要顺序执行,共同完成F操作 * Ai和Bi+1之间无干扰 * Bi和Bi+1之间无干扰 * Ai和Bi+1之间无干扰 * A B操作都比较耗时 ************************/最初在思考解决方案的时候,... 阅读全文