代码改变世界

随笔分类 - C#

.Net缓存管理框架CacheManager

2015-11-30 10:50 by JustRun, 21579 阅读, 收藏, 编辑
摘要:Cache缓存在计算机领域是一个被普遍使用的概念。硬件中CPU有一级缓存,二级缓存, 浏览器中有缓存,软件开发中也有分布式缓存memcache, redis。缓存无处不在的原因是它能够极大地提高硬件和软件的运行速度。在项目开发中,性能慢的地方常常是IO操作频繁的地方,读取数据库是我们常见的消耗性能的地方。这个时候,如果将使用频繁的数据缓存到能够高速读取的介质中,下次访问时,不用再去请求数据库,直接... 阅读全文

.Net Attribute详解(上)-Attribute本质以及一个简单示例

2013-11-27 08:10 by JustRun, 7853 阅读, 收藏, 编辑
摘要:Attribute的直接翻译是属性,这和Property容易产生混淆,所以一般翻译成特性加以区分。Attribute常常的表现形式就是[AttributeName], 随意地添加在class, method的头上,然后就能够产生各种各样奇特的效果和行为。比如关于序列化的标签[Serializable]用来指定一个实体类可以序列化。[NonSerialized]可以用来指定某些属性不包含在序列化中。一, Attribute本质是什么?Attribute类似于标签, 可以为类,方法,结构体,属性,委托等贴上标签,在以后的实际执行时候,根据不同的标签做不同的处理。拿类做个比方,如果把一个类看做一个人 阅读全文

使用ExposedObject对Asp.net MVC中匿名类型的JsonResult做单元测试

2013-08-11 16:02 by JustRun, 1048 阅读, 收藏, 编辑
摘要:返回JsonResult是MVC中的常见返回值类型,而且简单方便的方式是结合匿名类型一起使用。比如:public ActionResult PreviewEmail(){ …… return Json(new { HtmlContent = htmlContent, Title = title }, JsonRequestBehavior.AllowGet);}下面讨论一下,针对这个函数,如何单元测试。ExposedObject可以通过Nuget下载安装,介绍中已经说明了它的主要用处: 快速包装一个对象成dynamic,可以方便的访问对象的隐藏field和方法。这里的隐藏应该主要是... 阅读全文

理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用

2013-06-30 11:32 by JustRun, 12879 阅读, 收藏, 编辑
摘要:阅读目录:一.为什么是它们三个二. 能够任意赋值的原因三. dynamic的用法四. 使用dynamic的注意事项一. 为什么是它们三个?拿这三者比较的原因是它们在使用的时候非常相似。你可以用它们声明的变量赋任何类型的值。看看下面的示例:var a = 1;object b = 1;dynamic c = 1;你还可以使用关键字为它们赋上更加复杂的类型var a = new string[]{"1"};object b = new string[]{"1"};dynamic c = new string[]{"1"};二. 能够任意赋 阅读全文

C#语法糖

2012-07-26 11:14 by JustRun, 393 阅读, 收藏, 编辑
摘要:1. 自动属性private string _myName;public string MyName{ get { return _myName; } set { _myName = value; }}public string MyName { get; set; }2. 匿名委托和Lambda表达式class MyClass{ public delegate void DoSomething(int a); //定义方法委托 private void DoIt(int a) { Console.WriteLine(a); } ... 阅读全文