摘要: 很多专业的配置工具都不提供UI工具,只提供命令行操作,如很多网络设施的配置等。命令行工具具有输入效率高、批量运行等优点,但是对于使用者的专业要求较高,而且,大量的指令输入,对记忆力也是一个考验。事实上,我们可以借助.net,将某些常用的命令图形化,这样既方便了使用,也减少了输入大量命令的负担。我们主... 阅读全文
posted @ 2014-10-31 13:24 kennywangjin 阅读(3165) 评论(5) 推荐(0) 编辑
摘要: VSTO的Excel对象模型提供了托管代码对Excel的操作。但是它的实现时通过RCW(Runtime Com Wrapper)实现的,所以无法完全按照托管代码的运行方式操作。COM的资源释放时通过引用计数的方式实现,不同于CLR的GC机制,在引用计数没有设置为0的情况下,是不会回收资源的。所以,很多情况下,在操作Excel的时候,进程无法结束,其实就是因为Excel的COM计数器没有置0.那么,如何才能正确地将计数器置0呢?简单代码如下。 //启动Excel的程序 Excel.Application app = new Excel.Applicat... 阅读全文
posted @ 2013-07-17 11:16 kennywangjin 阅读(1319) 评论(0) 推荐(2) 编辑
摘要: 众所周知,微软的MVC框架提供了一系列Helper以用于创建Ajax的网页。但是,类似于Ajax.ActionLink()的方法创建的Ajax缺乏足够的灵活性,例如:页面上有很多选项,我们需要根据用户的选择调用服务端的Action并传递用户的选择作为参数,Ajax.ActionLink()创建的静态Ajax链接很难做到如此的灵活性。因此,多数情况下,我们都是在直接编写标记,并为该链接编写$.ajax()的脚本,判断用户的选择以创建对应的ajax请求。其实Ajax.ActionLink()有一个AjaxOptions的参数,其中有个OnBegin的属性,用于在ajax请求之前调用对应的脚本,可以 阅读全文
posted @ 2013-07-01 18:01 kennywangjin 阅读(343) 评论(0) 推荐(0) 编辑
摘要: enum类型是一种符号标记,便于开发者在程序编码中使用,从而避免数字类的状态标记。正是因为其主要是用于代码层面,所以设计之初就没有考虑过本地化的支持。但是,在很多情况下,我们都需要绑定enum类型到一个类似于ComboBox的控件以提供用户选择项,这个时候,本地化就显得必要了。当然,enum的本地化方式多种多样,本文试图探讨一种利用DataAnnotation的方法间接实现本地化。首先,定义一个DeviceType类型,并使用DataAnnotation方式标记enum类型的本地化资源(具体请参考DataAnnotation),示例中提供了英文和中文的两个资源文件,默认英文。 publi... 阅读全文
posted @ 2013-05-08 16:40 kennywangjin 阅读(1551) 评论(2) 推荐(1) 编辑
摘要: .NET 4.5已经发布有段时间了,伴随着而来的是大量的新特性,METRO风格应用程序,MVC4,EF5,等等,其中async/await关键字无疑是其中最亮的部分之一,堪比2.0的泛型,3.0的3W和LINQ,4.0的dynamic。因为刚刚开始学习C#4.5新特性,所以理解也不透彻,仅仅是了解用法而已。async关键字用来标记在Calling方法上,表示该方法内部将调用一个异步方法,并且该内部异步方法必须使用await进行标记。简单地看代码。 static void Main(string[] args) { ShowMessage(); ... 阅读全文
posted @ 2012-09-05 16:24 kennywangjin 阅读(619) 评论(1) 推荐(0) 编辑