代码改变世界

随笔分类 -  .Net小技巧

Visual Studio 2015上安装Entity Framework Power Tools

2016-01-05 07:54 by JustRun, 2917 阅读, 收藏, 编辑
摘要: Entity Framework Power Tools是个非常好用的EF Code First插件。通过它能够非常简单地生成和数据库结构匹配的model和dbcontext代码。使用的方法,这里有介绍 旧项目如何切换到Entity Framework Code FirstVisual Studio... 阅读全文

单元测试中如何配置log4net

2014-05-23 08:53 by JustRun, 1077 阅读, 收藏, 编辑
摘要: 按道理来说,单元测试中基本没有对于日志的需求,这是由于单元测试的定位来决定的。因为单元测试的思想就是针对的都是小段代码的测试,逻辑明确,如果测试运行不通过,简单调试一下,就能很容易地排查问题。但是单元测试也是一个简便好用的的启动器。总不能调试任何代码,都要我启动一个Windows或者Web项目吧,这... 阅读全文

理解C# 4 dynamic(4) – 让人惊艳的Clay

2014-01-22 07:27 by JustRun, 14698 阅读, 收藏, 编辑
摘要: Clay非常类似于ExpandoObject, 可以看做是ExpandoObject的加强版. 它们能够让我们在不需要定义类的情况下,就构建出我们想要的对象。Clay和ExpandoObject相比,提供了更加灵活的语法支持,让我们像写javascript代码一样写C#代码,同时还能够用于构建多层级的复杂对象。阅读目录:一、多种方式初始化对象二、构建神奇的Array三、为对象动态添加方法四、动态的实现接口五、Clay的应用背景六、Clay的Sample一,多种方式初始化对象1, 最简单的对象构建和初始化dynamic New = new ClayFactory();var person = N 阅读全文

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

2013-06-30 11:32 by JustRun, 15698 阅读, 收藏, 编辑
摘要: 阅读目录:一.为什么是它们三个二. 能够任意赋值的原因三. 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"};二. 能够任意赋 阅读全文

枚举类型转换成字符串

2012-06-22 23:27 by JustRun, 5305 阅读, 收藏, 编辑
摘要: 使用枚举类型默认的ToString()方法,往往不能得到我们想要的输出的字符串。如何方便的定义枚举类型中的每个值代表的字符串输出呢?可以使用DescriptionAttribute, 写上想得到的字符串输出。enum Direction{ [Description("Rover is facing to UP (Negtive Y)")] UP = 1, [Description("Rover is facing to DOWN (Positive Y)")] DOWN = 2, [Description("Rover is facing to 阅读全文

.net中调用windows performance记录性能信息

2012-05-27 15:26 by JustRun, 465 阅读, 收藏, 编辑
摘要: 记录skype的CPU 占用率var processorCounter = new PerformanceCounter{ CategoryName = "Process", CounterName = "% Processor Time", InstanceName = “skype”, MachineName = "."};processorCounter.NextValue()记录skype的内存占用var memoryCounter = new PerformanceCounter{ CategoryName = " 阅读全文

C#只允许运行应用程序的一个实例的正确写法

2012-05-27 14:59 by JustRun, 1492 阅读, 收藏, 编辑
摘要: 转自 http://www.cnblogs.com/hjblog/archive/2011/04/27/2030191.html有时我们需要只允许运行应用程序的一个实例,当进程启动时,如果发现应用程序的一个实例在运行,就自动停止运行。我们通常通过Mutex互斥体在Main函数中实现,通常的写法是:[STAThread]static void Main(){ bool createNew; using (System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out cr... 阅读全文

如何在修改checkbox状态,不触发事件

2012-05-13 11:49 by JustRun, 2476 阅读, 收藏, 编辑
摘要: 如果checkbox有状态修改的事件响应,这个时候如果为checkbox赋值初始状态的时候,就会触发checkbox的事件,而往往这个不是我们希望的。如何避免这种事情发生呢? 其实就是要区分到底是人为的触发的,还是代码触发的。 如果是人为触发的,那么这个时候焦点就会在checkbox上,如果是代码赋值触发的,一般焦点都不在checkbox上。事件响应的函数中添加这个条件 chkbox.Focused 阅读全文

匿名类型和Object转换

2012-05-13 11:33 by JustRun, 1552 阅读, 收藏, 编辑
摘要: .net中的匿名类型非常好用, 但是开发中遇到一个问题,当把匿名类型作为返回值的时候,会变成object类型,如果才能再转换能对应的匿名类型呢?1//返回匿名类型的函数,会转换成object类型2objectReturnAnonymous(){3returnnew{City="Prague",Name="Tomas"};4}56voidMain()7{8//调用方法,获取object对象9objecto=ReturnAnonymous();10//使用定义的Cast函数,再转换成我们需要的匿名类型对象11vartyped=Cast(o,new{City= 阅读全文

如何查看Linq to SQL运行时,实际执行的Sql语句

2012-02-22 14:29 by JustRun, 2243 阅读, 收藏, 编辑
摘要: 调试Linq to sql代码是, 如果遇到错误,很难判断错误的原因是什么,如果能够输出实际执行的sql原文,对于我们寻找错误的原因有有很大帮助。以下是我用到的方法: StringBuildersql=newStringBuilder();try{using(varcontext=newDataContext()){context.Log=newSystem.IO.StringWriter(sql);context.SubmitChanges();}}finally{sql.ToString();} 阅读全文

如何取消按钮,链接等事件

2009-05-30 22:32 by JustRun, 409 阅读, 收藏, 编辑
摘要: 经常会在<a>链接中调用js函数来实现功能,但是并不想真的跳转页面window.event.returnValue = false;链接就不会跳转到目的地址 阅读全文