随笔分类 - CSharp Technical
CSharp Technical
摘要:在以前传统的开发中我们都知道,一个应用程序对应一个进程,并为该进程指定虚拟内存,由操作系统来映射实际的物理内存,有效的维护了进程之间的安全性。但另一方面,每一个进程都会消耗一定的系统资源,降低了性能,并且进程间的通信也比较麻烦。在.Net中推出了一个新的概念:应用程序域(AppDomain)。可以理解成很多应用程序域都可以运行在同一个.NET的进程中,可以降低系统消耗,同时不同的域之间互相隔离,在安全性方面有保障。另外对于同一个进程内不同域之间的通信也相对简单一点。应用程序域涉及的内容很多,本文就简要描述以下两个方面:1、如何创建、卸载域2、如何实现域间的通信一、如何创建、卸载域在.NET中提
阅读全文
摘要:转自:http://www.cnblogs.com/freshman0216/archive/2008/07/29/1252253.html本篇从Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler的类关系图开始, 希望通过本篇的介绍能对常见的线程同步方法有一个整体的认识,而对每种方式的使用细节,适用场合不会过多解释。让我们来看看这几个类的关系图:1.lock关键字lock是C#关键词,它将语句块标记为临界区,确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该
阅读全文
摘要:C#老生常谈之AutoResetEvent和ManualResetEvent一:终止状态和非终止状态 首先说说线程的终止状态和非终止状态。AutoResetEvent和ManualResetEvent的构造函数中,都有bool变量来指明线程的终止状态和非终止状态。true表示终止状态,false表示非终止状态。看代码片段1:代码片段1: AutoResetEvent _autoResetEvent = new AutoResetEvent(false); private void BT_Temp_Click(object sender, RoutedEventArgs e) { Thread
阅读全文
摘要:C#中的AutoResetEvent和ManualResetEvent用于实现线程同步。其基本工作原理是多个线程持有同一个XXXResetEvent,在这个XXXResetEvent未被set前,各线程都在WaitOne()除挂起;在这个XXXResetEvent被set后,所有被挂起的线程中有一个(AutoResetEvent的情况下)或全部(ManualResetEvent的情况下)恢复执行。AutoResetEvent与ManualResetEvent的差别在于某个线程在WaitOne()被挂起后重新获得执行权时,是否自动reset这个事件(Event),前者是自动reset的,后者不是
阅读全文
摘要:C#借助API实现黑盒自动化测试工具的编写本文代码下载(VS2010开发):http://download.csdn.net/source/2796362本文摘要:1:一个简单的例子 1.1:EnumChildWindows介绍 1.2:主要源码2:难点:如何获取指定的控件句柄 2.1:使用SPY++ 2.2:获取控件位置 2.3:获取控件ID1:一个简单的例子 在日常编码过程中,我们常常会进行自动化测试。这里的自动化测试不是指单元测试,而是模拟人工输入来进行快速的、高并发的测试。可以使用的自动化工具有LOADRUNNER,以及目前在VS2010中的功能很强大的测试工作平台(录制操作步骤,自动
阅读全文
摘要:CultrueInfo保存区域特定的信息,如关联的语言、子语言、国家/地区、日历和区域性约定。该类还提供对DateTimeFormatInfo、NumberformatInfo、CompareInfo和TextInfo的区域性特定实例的访问。这些对象包含区域性特定操作(如大小写、格式化日期时间和数字以及比较字符串)所需的信息。 部分区域性名称和标识符:区域性名称区域性标识符语言-国家/地区ar0x0001阿拉伯语ar-EG0x0C01阿拉伯语 - 埃及zh-CN0x0804中文 - 中国zh-CHS0x0004中文(简体)zh-TW0x0404中文 - 台湾zh-CHT0x7C04中文(繁体)
阅读全文
摘要:C#中Hashtable和HashMap的区别--很详细; 参考自http://www.hd1204.com/article/html/1655.html感谢原创;HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable。可能你觉得HashTable很好用,为什么不用呢? 这里简单分析他们的区别。 1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。 2.HashTable不允许null值(key和v..
阅读全文
摘要:1. mop mock tool framework : http://code.google.com/p/moq/wiki/QuickStart2. Rhino.mock framework : http://ayende.com/blog3. DotNetMock framework :
阅读全文
摘要:C# 集合类 Array Arraylist List Hashtable Dictionary Stack Queue 1.数组是固定大小的,不能伸缩。虽然System.Array.Resize这个泛型方法可以重置数组大小, 但是该方法是重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!而集合却是可变长的 2.数组要声明元素的类型,集合类的元素类型却是object. 3.数组可读可写不能声明只读数组。集合类可以提供ReadOnly方法以只读方式使用集合。 4.数组要有整数下标才能访问特定的元素,然而很多时候这样的下标并不是很有用。集合也是数据列表却不使用下标访问。 很
阅读全文
摘要:Global.asax 文件中配置自定义的错误?问:您要创建ASP.NET应用程序用于运行公司内部的Web站点,这个应用程序包含了50个页面。您想要配置这个应用程序以便当发生一个HTTP代码错误时它可以显示一个自定义的错误页面给用户。您想要花最小的代价完成这些目标,您应该怎么做?答:在这个应用程序的 Global.asax 文件中创建一个Application_Error过程去处理ASP.NET代码错误;在DataGrid控件的Footer显示员工合计数?问:您要创建一个显示公司员工列表的应用程序。您使用一个DataGrid控件显示员工的列表。您打算修改这个控件以便在这个Grid的Footer
阅读全文
摘要:什么是面向对象?面向对象OO = 面向对象的分析(OOA) + 面向对象的设计(OOD) + 面向对象的编程(OOP);通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数;现在纯正的OO语言主要是JAVA和C#,C++也支持OO,C是面向过程的。阐述面向接口、面向对象、面向方面编程的区别?面向对象不好解释,可以理解为以一切元素都是对象,在设计时以对象为单位,考虑它的属性及方法。设计中采用了封装、继承、抽象的手法;面向接口本身就是面向对象的,无所谓区别,只不过面向接口的好处是耦合性低;面向方面Aspect-Orien
阅读全文
摘要:Web Service 数据传输有什么限制?为什么?DataTable可以作为Web Service参数传递吗?所传输的数据必须是可序列化的。因为需要转换为XML格式以可以穿越防火墙,做到真正的数据共享。因为DataSet处理DataTable的序列化以便进行封送处理,所以无法传递单个DataTable;在 ADO.NET 的三个基本数据对象 — DataReader、DataTable 和 DataSet 中,只有 DataSet 可以与 Web 服务之间传递。这是因为,为了与 Web 服务进行通信,对象必须是可序列化的(序列化是一个过程,它用于将对象的公共属性转换为 XML,并且因为 XM
阅读全文
摘要:FxCop介绍: FxCop是一个代码分析工具,它依照微软.NET框架的设计规范对托管代码assembly进行检查。它使用基于规则的引擎,来检查出你代码中不合规范的部分;你也可以定制自己的规则加入到这个引擎。 还有一款很流行的代码检测工具叫做StyleCop。之所以选择使用FxCop有两个原因,首先是StyleCop不支持VB.Net,而我们用VB.Net做后台开发的。第二是FxCop有非常强大的定制规则引擎的能力,这方面的能力StyleCop不如FxCop。FxCop使用: 1、下载FxCop 最新版本的是FxCop 10.0。我是使用FxCop 1.36版的。FxCop 10.0可以到微软
阅读全文
摘要:1.关于 bin 目录和 obj 目录bin 目录用来保存项目生成后程序集,它有 Debug 和 Release 两个版本,分别对应的文件夹为 bin/Debug 和 bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。obj 目录是用来保存每个模块的编译结果,在 .NET 中,编译是分模块进行的,编译整个完成后会合并为一个 .DLL 或 .EXE 保存到 bin 目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj 保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>
阅读全文
摘要:下面的代码只是在处理折行,可以再加入控制该机能的属性,以及保留原值的属性,这样就可以达到比较完美的自定义控件了。public partial class MyLabel : Label{ public MyLabel() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { SizeF thisSize = e.Graphics.MeasureString(this.Text, this.Font); if (thisS...
阅读全文
摘要:初学C#的时候,老是被IEnumerable、IEnumerator、ICollection等这样的接口弄的糊里糊涂,我觉得有必要切底的弄清楚IEnumerable和IEnumerator的本质。下面我们先看IEnumerable和IEnumerator两个接口的语法定义。其实IEnumerable接口是非常的简单,只包含一个抽象的方法GetEnumerator(),它返回一个可用于循环访问集合的IEnumerator对象。IEnumerator对象有什么呢?它是一个真正的集合访问器,没有它,就不能使用foreach语句遍历集合或数组,因为只有IEnumerator对象才能访问集合中的项,假如
阅读全文
摘要:V1.0 版本功能1.快速设置数据字段说明2.导出数据库文档 WORD文件3.导出数据库字段说明SQL语句 文本文件问题打开导出WORD发现第二页的第一个表格 会和第一页末尾的表格叠加在一起,目前的办法不是最优的,不知道谁有好的建议,此问题将在下次更新时解决V1.1 版本增加可视化链接数据配置快速生成 创建 添加 删除 修改 查询SQL语句代码分享using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using
阅读全文
摘要:回顾上周微软一站式示例代码库最新发布的7篇示例代码:[Sample of Apr 29th] Add Dynamic Controls to ASP.NET GridView该示例代码演示如何在ASP.NET GridView控件中动态添加控件[Sample of Apr 28th] Keep ASP.NET AutoComplete List Open该实例演示如何保持ASP.NET AutoComplete列表一直打开[Sample of Apr 27th] Customized Intelligent TextBox via ASP.NET该实例演示如何在ASP.NET中实现智能输入框。
阅读全文
摘要:最 近准备学NHibernate,于是网上狂找,看来有不少文章,但仔细看就会明白,搞来搞去,其实就那么几篇大同小异的文章,但还是终于在我们的博客上找 到篇好点的,就是下面那篇了,我也不明白是哪为高手写的了,因为转载的太多了,有点糊涂了,也许是张老三的作品吧,但不知道是没有把相关源码共享出来,还 是我没有找到,对一个新手来说,就一些文字真的有点困难啊,何况下面的文章可能由于手误,还是某些原因,我是调试很久才调得出来,也许是我的 NHibernate,和NUIT的版本跟原文的不同,我用的NHibernate 0.9.1.0,NUnit2.2。顺便把NUnit也学了,还是蛮不错的了。下面的文章也许是
阅读全文
摘要:///<summary>///WebClient上传文件至服务器///</summary>///<paramname="localFilePath">文件名,全路径格式</param>///<paramname="serverFolder">服务器文件夹路径</param>///<paramname="reName">是否需要修改文件名,这里默认是日期格式</param>///<returns></returns>p
阅读全文

浙公网安备 33010602011771号