摘要: 这也是前两天课程中的案例。讨论的是,MDI子窗体是否也可以实现单实例
阅读全文
摘要: 这是一个小问题,请看下面的代码这样我们就实现了比较了,我们分别对两个object去获取HashCode,这个方法返回的是int,既然是int当然就可以比较了。那么,也就是说其实任何类型都可以通过实现G...
阅读全文
摘要: rdlc其实是一个XML文件,这种报表必须通过ReportViewer才能显示出来。 一般有两种方式来使用它们 1. 如果不希望在程序发布之后去修改它们,例如我们程序自带的一些统计报表,我们不希望用户...
阅读全文
摘要: 这也是这两天课堂上的一个范例。我们考虑到有很多报表,不可能为所有的报表单独定义一个窗口来显示,所以最后重构成一个通用的窗口 后台代码主窗体调用代码窗体显示的大致效果如下
阅读全文
摘要: 这也是前两天在课堂上的一个案例,我们实现了自定义的文本框验证器。这是一个实现了IExtenderProvider 的组件。该范例部分代码改编自MSDN 这个验证组件,可以为窗体上任意多个文本框提供验证...
阅读全文
摘要: 这是前两天课堂上的例子,提供了一个自定义WindowsFormsApplication的范例,主要包括如下的功能 1. 单一实例 2. 闪屏 3. 登陆窗口 4. 任务栏图标和菜单 需要注意的是,Wi...
阅读全文
摘要: 下面代码可以为Outlook添加联系人和通讯组。但要注意,Outlook需要处于打开状态,否则会收到下面的异常从 IClassFactory 为 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的 COM 组件创建实例失败,原因是出现以下错误: 8001010a。具体原因目前没有搞清楚 OL.Application app = new OL.Appli...
阅读全文
摘要: 我认为WPF的核心改变之一就是控件模型发生了重要的变化,大的方面说,现在窗口中的控件(大部分)都没有独立的Hwnd了。而且控件可以通过所谓的模板提供各种各样的表现形式。 这一篇就来谈一谈Content...
阅读全文
摘要: 之前做过Windows Forms开发的朋友一定很熟悉,我们的应用程序都是从Program.cs的一个Main方法开始的,如下图所示 这个Main方法也被称为所谓的“EntryPoint”,也就是说...
阅读全文
摘要: 我有一个好消息,也有一个坏消息。请问你要先听好消息还是坏消息呢? 还是先说坏消息吧,Windows Forms提供的控件有相当一部分在WPF中都没有对应的版本,至少目前是这样。关于这个方法的详细信息,...
阅读全文
摘要: 大家是否还记得在Windows Forms程序中如何实现splashScreen吗?我们一般都会使用Microsoft.VisualBasic.dll中提供的那个WindowsFormsApplica...
阅读全文
摘要: 这是一个普遍的问题:如果我们再程序中使用了多线程技术,而工作线程(后台线程)如果需要更新界面上的元素(例如进度条等),就会有一个线程安全性问题,因为进度条是由主线程创建出来的。 关于这一点,大致上看,...
阅读全文
摘要: 好吧,这是我将WPF与Windows Forms进行比较的系列文章的第四篇,讨论一下如何实现单实例(single instance) 先来看第一种最简单粗暴的做法: 检测进程名,如果名称一样,则表示程序已经启动了,就不再启动.这一种做法的结果与第一种很类似,或者说没有任何区别。看起来解决问题了,但仍然不是很理想的。最好的情况是,当用户开启第二个实例的时候,如果第一个实例没有处于活动状态,则应该激活...
阅读全文
摘要: 1. 私钥加密:也就是对称加密。这种算法采用同一个密钥(Key)对数据进行加密和解密,虽然可以通过设置初始化向量(IV),但因为在加密方和解密方中需要共享这两部分信息,相对而言,它不够安全。 但一般来...
阅读全文
摘要: 本文转载自:http://blogs.msdn.com/ericwhite/archive/2008/12/22/convert-xelement-to-xmlnode-and-convert-xml...
阅读全文
摘要: long long ago,是没有new修饰符的。准确的说,这是C#中的一个修饰符。当年学习c#的时候,就记住了它的作用:在子类中隐藏中父类中的同名成员。 但是,其实这种情况很少,难道不是吗?至少我几...
阅读全文
摘要: 这是是今天课堂上的例子。针对文件的加解密其实与字符串加解密没有大的差别。
阅读全文
摘要: 这是在课堂上讲解的一个例子,最简单的对称算法,DES关于该算法的一些说明,有兴趣的朋友可以参考下面的链接http://baike.baidu.com/view/7510.htm static void Main(string[] args) { DES des = DES.Create(); des.Key = Convert.FromBase64String("12345678910="); d...
阅读全文
摘要: 这是今天课堂上的一个话题。如何定义事件,这好像并不是问题,我们习惯性直接用下面的代码定义,不是吗?这样做的话,大致是会怎么编译呢? 其实编译器会帮我们生成两个方法: add_NameChanging和...
阅读全文
摘要: 1.到底什么是值类型,什么是引用类型? 值类型直接或者间接地继承ValueType类型,它包含的类型主要:内置值类型(除string之外的简单类型,如整型--Int32等),自定义值类型(结构体,st...
阅读全文
摘要: 这是昨天课堂上一个问题,如何读取到计算机上所有证书的信息呢?我们首先来看一下到底有哪些证书 下面的代码可以通过三个循环找到所有的证书
阅读全文
摘要: 这一篇谈谈类型构造的问题。主要针对构造器这个层面进行一些探讨。 1. 有哪几种构造器 默认构造器(无参数) 自定义构造器(有参数) 静态构造器 2.何时调用构造器 通过new关键字创建实例的时...
阅读全文
摘要: 这是今天课堂上一个例子,讲解了如何通过代码方式和声明式的方式检查应用程序的安全性。
阅读全文
摘要: 下面代码演示了如何通过反射技术得到某个类型的所有成员。需要注意的是,默认情况下,GetMembers方式是只能读取公有成员的,如果需要读取所有的成员,则需要用下面的方式
阅读全文
摘要: 这也是今天课堂上的一个简单例子,演示了如何使用LINQ to SQL的技术,以及C# 3的一些新特性
阅读全文
摘要: 这是今天课堂上的一个例子,我们实现了一个简单的SQLServerTraceListener
阅读全文
摘要: 这是今天在课堂上演示的例子代码,自定义身份验证的简单做法是通过GenericPrinciple和GenericIdentity实现,也可以通过自定义Principle和Identity实现。
阅读全文
摘要: 下面的代码演示了如何在程序中读取用户的Windows身份信息
阅读全文
摘要: 本文转载:http://blogs.msdn.com/silverlightshanghai/archive/2009/09/03/net-4-0-mscoree-dll-mscoreei-dll-r...
阅读全文
摘要: depends.exe,原先在vs2005是提供的,但是vs2008中却没有了。下面的网站提供了单独下载 从这个图,更加可以看出来.NET的应用程序对mscoree.dll(.NET Framewor...
阅读全文
摘要: 曾经有朋友问到这样的一个问题:我要开发一个能运行在64位机器上的应用程序,是不是应该使用Visual Studio 的64位版本来做? 这是一个似是而非的问题,首先其实Visual Studio 并没...
阅读全文
摘要: CLR的版本问题有点让人迷惑。很多朋友甚至没有意识到这个问题,大家经常看到Framework在变版本,例如我们现在用过的版本有 1.0 1.1 2.0 3.0 3.5 但要注意的是,Framewor...
阅读全文
摘要: 这是一个特殊的文件,如果用户的机器安装了.NET Framework ,就有这个文件。它的默认路径在 %systemdrive%\system32 而它就是CLR的运行引擎
阅读全文
摘要: 大家可以思考下面的代码有几个问题:1. 这几个方法哪些会发生装箱,哪些不会?2. 他们有什么区别吗?要了解这两点,可以通过下面的图形 所以,答案就是,只有第一种没有发生装箱操作。其他三种都发生了。而后...
阅读全文
摘要: 经常被问到这样的问题:值类型能不能按引用传递?传递之后又是什么样的处理方式 当然是可以的,不管是现在还是以前都可以。我们来看看下面两个方法的区别 我们知道int是值类型,在第一个方法中,我们按照默认的...
阅读全文
摘要: 上一篇我们提到过程序集引用的问题,通过反编译工具可以很方便地看到他们的引用关系。如下图所示 那么是否有办法在代码中进行查询得到这些信息呢?答案是肯定的,我们可以通过下面的简单代码就实现了 我们主要用到...
阅读全文
摘要: 我们一般都知道,.NET Framework的GAC(global assembly cache)其实就是一个特殊的目录,如下图所示 但是它内部到底是什么结构呢? 很奇怪对吧?两个图完全不一样。不要惊...
阅读全文
摘要: 在Windows编程中,我们可能经常需要用到环境变量。它其实相当于是操作系统级别的一个配置文件。 .NET编程中可以很方便地访问到这些环境变量,下面的代码就演示了这个过程
阅读全文
摘要: 有网友看了我之前喜写的多文件下载的文章,想自己实现一个类似的。但遇到困难。我这里准备了一个可以参考的完整的例子。其实不难,我希望这位朋友还是要把基础功夫学好。 1. 页面2. 代码3. 效果 4....
阅读全文
摘要: 这是今天讲课中的一个小例子, 演示了如何添加搜索路径,以便让.NET的应用程序可以搜索到有关的程序集. 因为.NET程序默认只是在自己的根目录和GAC中搜索, 所以添加下面的配置后,就可以实现在plu...
阅读全文
摘要: 下面代码是今天课程中,有朋友上台做即席演讲时举的一个例子.这个例子不错,概括了动态调用方法的几种情况,包括静态方法,实例方法,方法重载等等
阅读全文
摘要: 本文转载:http://msdn.microsoft.com/zh-cn/library/ms228993.aspx .NET Framework 2.0 版中的新功能之一就是增强的跟踪系统。基本的前...
阅读全文
摘要: 还是那句话,多线程很有用,但并非那么好玩。请使用之前确认你真的掌握了它们 本文请参考:http://msdn.microsoft.com/zh-cn/library/1c9txz50.aspx 有关...
阅读全文
摘要: 默认情况下,在调试状态下我们可以看到下面的效果 这里面的线程中 主线程 不必多说,就是程序的主要工作线程 SystemEvents线程之前探讨过是系统事件触发之后的工作线程 另外几个线程,很奇怪。但...
阅读全文
摘要: Microsoft.Win32.SystemEvents类型,简单来说,就是提供了让我们程序监控系统事件的能力,可以参考下面的介绍 那么什么是SystemEvents线程呢?就是说,程序开启之后,默...
阅读全文
摘要: 总结起来说,线程池有如下的特性: 每个进程有一个单独的池,也只有一个 每个池初始的线程数是相当于处理器的数目 每个池默认的最大线程数是处理器数目的25倍 即便所有的线程都不处于空闲状态,但此时又有新...
阅读全文
摘要: 这也是今天讨论的话题。取消是默认就支持的,而暂停则默认不支持。但通过ManualResetEvent可以对其进行干预。 三。恢复状态 作为演示,代码比较简单,没有对worker的一些状态进行判断以及按...
阅读全文
摘要: 这也是今天讨论到的一个话题,其实还是比较简单的。因为事件处理程序都是在主线程被执行的,所以主线程肯定是依次执行他们。那么究竟是什么决定了这个顺序呢? 其实要深入看的话,这是因为事件的处理程序是通过一个...
阅读全文
摘要: 今天在讨论多线程的时候,谈到了这个属性。IsAlive,顾名思义,它表示线程当前是否为可用状态,如果线程已经启动,并且当前没有任何异常的话,则返回true,否则为false 为什么要了解这个属性,是因...
阅读全文
摘要: 今天在讲到动态执行方法的时候,我们讨论到了Delegate.CreateDelegate的方法。但也有下面这样的一个更加通用的方法:可以执行任何方法,传递任意个数的参数,而无需定义delegate
阅读全文
摘要: 如果我们需要在Silverlight中跨站调用Web Service,则可能会遇到这个问题:默认情况下,Silverlight是不允许你这么做的。那么如何来解决该问题呢,请看Tim下面的这篇文章 ht...
阅读全文
摘要: XNamespace d = "http://schemas.microsoft.com/ado/2007/08/dataservices";我们需要构造一个XNamespace对象,按一般的习惯,我...
阅读全文
摘要: Silverlight中,可以通过所谓的自定义服务的方式 ,在后台运行一些特殊功能,例如定期检查远程网站资源等等 。 1. 编写一个自定义服务2. 注册该服务 ,必须在Application对象的构...
阅读全文
摘要: 1. 需要手工修改项目文件才支持多语言,请参考下面文章 http://www.cnblogs.com/KevinYang/archive/2008/11/10/1330305.html 这不得不说是一...
阅读全文
摘要: 微软的RIA平台,你了解吗?Silverlight,你用过了吗? 大戏正在上演,不管你是否感觉到,你我都是戏中人,嘿嘿 http://www.microsoft.com/china/expressio...
阅读全文
摘要: http://mono-project.com/What_is_Mono
阅读全文
摘要: 我之前的一篇日记说到了隔离存储的问题,简单而言,它就是提供给Silverlight应用程序可以在用户机器上做一些文件存取的机制 。 事实上,除了我们自己写文件之外,还可以直接利用IsolatedSto...
阅读全文
摘要: 1。 数据服务的返回数据格式 注意,没有办法通过添加引用的方式调用该服务,估计有安全方面的一些考虑吧 2。因为ADO.NET数据服务是可以直接通过http请求实现,所以下面两个代码都可以完成工作 ...
阅读全文
摘要: 什么是选项卡分组呢?就是说你在某个页面中,打开某个链接的时候,不是直接点击,而是通过右键菜单中选择“在新选项开打开链接”
阅读全文