.Net 相关知识
文章平均质量分 75
chclvzxx
风一样的表情,水一般的柔情,火一样的激情,土一样的性情,木一样的痴情。
展开
-
装箱拆箱详细分析
1:装箱/拆箱是什么? 装箱:用于在垃圾回收堆中存储值类型。装箱是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换。 拆箱:从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。 2:为何需要装箱?(为何要将值类型转为引用类型?) 一种最普通的场景是,调用一个含类型为Object的参数的方法,该Object可支持任意为型原创 2012-11-25 15:39:15 · 1215 阅读 · 0 评论 -
ServiceStack.Redis 使用教程
环境准备Redis (使用Windows版本做测试,运营环境建议使用Linux版本)ServiceStack.Redis-v3.00在Windows上运行Redis服务器作开发和测试是很好的,但是在运营环境还是Linux版本靠谱,下面我们就先解压Redis到一个目录下:运行redis-server.exe 看到如下Windows控制台:上面我们可以看转载 2012-07-19 21:31:18 · 1422 阅读 · 0 评论 -
ASP.NET上运行Redis简单示例
方法一:单服务器 代码: RedisClient redisClient = new RedisClient("127.0.0.1"); using (var redisUsers = redisClient.GetTypedClient()) using (var redisBlogs = redisClient.GetTypedClient())原创 2012-07-19 21:14:54 · 2269 阅读 · 0 评论 -
四种多服务器共享session的方法
多服务器共享session的方法 伴随网站业务规模和访问量的逐步发展,原本由单台服务器、单个域名的迷你网站架构已经无法满足发展需要。此时我们可能会购买更多服务器,并且启用多个二级子域名以频道化的方式,根据业务功能将网站分布部署在独立的服务器上;或通过负载均衡技术(如:DNS轮询、Radware、F5、LVS等)让多个频道共享一组服务器。OK,头脑中我们已经构原创 2012-07-19 21:05:56 · 725 阅读 · 0 评论 -
进程、线程与JVM、CLR
进程和线程的关系:网上有一副很经典的图可以让我们来理解进程和线程的关系:下面这副图是一个双向多车道的道路图,假如我们把整条道路看成是一个“进程”的话,那么图中由白色虚线分隔开来的各个车道就是进程中的各个“线程”了。这副图出自:http://www.blogjava.net/pengpenglin/archive/2008/09/02/226292.html转载 2012-02-28 14:18:34 · 90 阅读 · 0 评论 -
c#图像处理入门的一个好方法-bitmap类和图像像素值获取方法
一.Bitmap类Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下:1. GetPixel方法和 SetPixel方法:获取和设置一个图像的指定像素的颜色.2. PixelFormat属性:返回图像的像素格式.3. Palet原创 2012-02-23 17:32:24 · 1408 阅读 · 0 评论 -
C#各种结束进程的方法详细介绍
Process类的CloseMainWindow, Kill, CloseProcess.CloseMainWindow是GUI程序的最友好结束方式,从名字上就可以看出来它是通过结束主窗体,相当于用户点击窗体的关闭按钮或者按Alt + F4。它的本质就是向主窗体发送WM_CLOSE消息(Process.MainWindowsHandle可以返回主窗体的句柄)。这个可以在.NET Framewo转载 2011-11-11 16:26:49 · 2983 阅读 · 0 评论 -
ASP.NET访问网络驱动器(映射磁盘)
也许很多朋友在做WEB项目的时候都会碰到这样一个需求:当用户上传文件时,需要将上传的文件保存到另外一台专门的文件服务器。 要实现这样一个功能,有两种解决方案:方案一、在文件服务器上新建一站点,用来接收上传的文件,然后保存。方案二、将文件服务器的指定目录共享给W原创 2011-09-22 12:50:01 · 915 阅读 · 1 评论 -
收藏一款好用的基于.NET的配置文件设计工具
在进行框架开发的过程中,我们往往需要对配置文件的结构进行设计,以便产生一套完整的配置方案,供开发人员在使用框架时能对框架进行配置。对于某些大型的框架,其配置节点的结构可能相当复杂,比如某个配置节点(Configuration Element)可以有属性,还可以在其下挂载多个其它的原创 2011-09-16 13:17:04 · 637 阅读 · 0 评论 -
通过调用Word模板(Doc、dot)直接打印
通过替换模板中的指定 书签 来进行内容的替换、整合,然后直接发送到打印打印,也可以导出。即把打印出的语句换成保存函数。public static class myPrintByOffice { public static void byDoc(String t转载 2011-07-14 17:53:45 · 1354 阅读 · 0 评论 -
C# 内存模型
1..Net的类型和内存分配2.GC垃圾收集器的工作原理3.什么是非托管资源4.如何有效释放对象资源。总结.现在开始我们本节的学习。 1..Net的类型和内存分配 Net中的所有类型都是(直接或间接)从System.Object类型派生的。 CTS中的类型被分成两大类——引用类型(reference type,又叫托管类型[managed type]),转载 2012-09-02 21:42:18 · 2513 阅读 · 0 评论 -
C# WinForm开发系列 - Thread/Delegate/Event
来源:http://www.cnblogs.com/peterzb/archive/2009/06/10/1500273.html#是一门支持多线程的语言,因此线程的使用也是比较常见的。由于线程的知识在Win32编程的时候已经说得过多,所以在.Net中很少介绍这部分(可能.Net不觉得这部分是它所特有的)。那我们为什么要使用多线程? 应该什么时候使用它呢?为什么使用多线程?转载 2012-11-08 10:58:42 · 789 阅读 · 0 评论 -
反编译工具Reflector下载(集成FileGenerator和FileDisassembler)
Reflector是一款比较强大的反编译工具,相信很多朋友都用过它,但reflector本身有很多局限性,比如只能一个一个的查看方法等,但幸好reflector支持插件功能目前网上有很多reflector的插件,本人找取了两个应用范围很广,并且广受好评的插件:Reflector.FileDisassembler和Reflector.FileGenerator和Reflector进行了整合,放在了一转载 2012-11-04 18:37:53 · 543 阅读 · 0 评论 -
第六章 用户权限管理(二)- DataGrid控件技巧
6.5 资源管理的设计与实现 6.5.1 资源管理的程序原型设计 本文设计与开发的政务系统通过资源分类来管理资源。 如图6.5所示,资源分类的设置是为了方便管理机关内部的所有资源,对于本办公系统来说,所有系统资源隶属“办公桌面板块”大类,其下又细分为资源管理、角色权限管理等二级类。 如图6.6所示,在二级分类下包含了具体的系统资源,如资源管理类下就包含了原创 2012-09-18 15:20:16 · 891 阅读 · 0 评论 -
数组和集合的整理
要学习.NET平台上面的数据结构和算法,那么就需要对System.Collections这个命名空间,以及System.Collections.Generic这个空间下面的一些类型比较了解。转载 2012-09-17 11:06:10 · 428 阅读 · 0 评论 -
WCF传输大数据的设置
在从客户端向WCF服务端传送较大数据(>65535B)的时候,发现程序直接从Reference的BeginInvoke跳到EndInvoke,没有进入服务端的Service实际逻辑中,怀疑是由于数据过大超出限定导致的。问题是我实际发送的数据是刚刚从WCF服务端接收过来的,一来一去,数据量差别并不大。然后发现,在客户端和服务端实际使用的是不同的配置,对于客户端,在添加ServiceRefer原创 2012-09-07 10:23:21 · 459 阅读 · 0 评论 -
NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)
全文还是分四部分:1.基本概念 2.深拷贝与浅拷贝实现机制 3.代码实现和分析 4.总结。下面我们来进入正式的学习。 1.基本概念: 首先我们应该了解一下什么叫深拷贝与浅拷贝(Deep Copy and Shallow Copy)。 a.浅拷贝(Shallow Copy影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用。转载 2012-09-02 21:46:39 · 1284 阅读 · 0 评论 -
对象的内存模型基础知识
操作系统和运行库通常将用于容纳数据的内存划分为两个独立的区域,每个区域都采取截然不同的方式来进行管理,这两个区域通常称为堆栈和堆。调用一个方法时,它的参数以及它的局部变量需要的内存从堆栈中获取,方法结束后(要么返回,要么抛出异常),为参数和局部变量分配的内存将自动归还给堆栈并可在另一个方法调用时重新使用。使用new关键字和一次构造函数来创建一个对象(类的实例)时,构建对象所需的内存转载 2012-09-02 21:47:54 · 451 阅读 · 0 评论 -
C#中的多线程-线程同步基础 (控制线程数量)
同步要领下面的表格列展了.NET对协调或同步线程动作的可用的工具:简易阻止方法构成目的Sleep阻止给定的时间周期Join等待另一个线程完成锁系统构成目的跨进程?速度lock确保只有一个线程访问某个资源或某段代码。否快Mutex确保只有一个线程访问某个资源或某段代原创 2011-06-27 17:28:00 · 3281 阅读 · 0 评论 -
c# 中委托和直接函数调用用什么区别,好处和目的在哪?
<br />以一个例子说明: <br />//定义原形 <br />public delegate void MessageEventHandler(object sender, EventArgs e); <br />public event MessageEventHandler MessageReceived; <br /><br />//注册事件 <br />MessageReceived += new MessageEventHandler(HandleIt); <br /><br />//使用时原创 2011-04-27 21:54:00 · 4728 阅读 · 0 评论 -
用反射(Reflection)和委托(delegate)分发 switch 操作
有时候,我们经常需要处理一些比较大的 switch 语句,如:public interface IAction{ void DoAction(string ActionName);}public class OkCancelAction : IAction{ public void DoAction(string ActionName) { switch( ActionName ) { case "O原创 2011-03-17 13:57:00 · 848 阅读 · 0 评论 -
.net Remoting的工作原理
<br />.NET Remoting 提供了一种允许对象通过应用程序域与另一对象进行交互的框架。在Remoting中是通过通道(channel)来实现两个应用程序域之间对象的通信的。<br /> 首先,客户端通过Remoting,访问通道以获得服务端对象,再通过代理解析为客户端对象。这就提供一种可能性,即以服务的方式来发布服务器对象。远程对象代码可以运行在服务器上(如服务器激活的对象和客户端激活的对象),然后客户端再通过Remoting连接服务器,获得该服务对象并通过序列化在客户端运行。<br原创 2011-03-13 10:55:00 · 796 阅读 · 0 评论 -
MS .Net常见的持久层框架
NHibernate NHibernate是一个面向.NET环境的针对关系型数据库的对象持久化类库。 NHibernate来源于非常优秀的基于Java的Hibernate关系型持久化工具。 NHibernate从数据库底层来持久化你的.Net对象到关系型数据库。NHibernate为你处理这些,你不用自己写SQL去数据库存取对象。你 的代码仅仅和对象关联,NHibernat自动产生SQL语句,并确保对象提交到正确的表和字段中去.大量减少开发时人工使用SQL和ADO.NET处理转载 2011-03-10 17:08:00 · 2364 阅读 · 0 评论 -
构造函数;析构函数;垃圾回收器;非托管资源;托管资源
<br />一.构造函数与析构函数的原理<br /> 作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙。但是程序通过了编译检查并不表示错误已经不存在了,在“错误”的大家庭里,“语法错误”的地位只能算是冰山一角。级别高的错误通常隐藏得很深,不容易发现。<br /> 根据经验,不少难以察觉的程序错误是由于变量没有被正确初始化或清除造成的,而初始化和清除工作很容易被人遗忘。微软利用面向对象的概念在设计C转载 2011-03-07 22:33:00 · 384 阅读 · 0 评论 -
C#.net 3.5新特性介绍
C#.net 3.5新特性介绍<br />从笔者接触编程至今,经历了数种编程语言,从Visual Basic6.0桌面程序开发到ASP(VBScript)的网站开发,从C#1.1到C#2.0,再至今日的令人加心动的C#3.5,笔者曾多次为Windows平台下的编程感慨--越来越方便的操作,越来越强大的功能,越来越简洁的代码使得由代码组成的编程世界中平添的许多色彩与欢乐。 <br /><br /> 以上可以算作对即将要介绍的C#3.5新特性的一个铺垫。笔者对于C#的爱,胜过其他的任何语言,尤其对于刚刚召转载 2011-03-07 21:45:00 · 579 阅读 · 0 评论 -
.NET中的内存管理,GC机制,内存释放过程
引言作为一个.NET程序员,我们知道托管代码的内存管理是自动的。.NET可以保证我们的托管程序在结束时全部释放,这为我们编程人员省去了不少麻烦,我们可以连想都不想怎么去管理内存,反正.NET自己会保证一切。好吧,有道理,有一定的道理。问题是,当我们用到非托管资源时.NET就不能自动管理了。这是因为非托管代码不受CLR(Common Language Runtime)控制,超出CLR的管理范围。那么如何处理这些非托管资源呢,.NET又是如何管理并释放托管资源的呢?自动内存管理和GC在原始程序中堆的内存分配是这转载 2011-03-07 21:23:00 · 561 阅读 · 0 评论 -
c# 泛型 类型参数的约束(C# 编程指南)
<br />在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束:约束 说明 <br />T:结构<br />类型参数必须是值类型。可以指定除 Nullable 以外的任何值类型。有关更多信息,请参见使用可空类型(C# 编程指南)。<br />T:类<br />类型参数必须是引用类型,包括任何类、接口、委托或数组类型。<转载 2011-03-07 21:17:00 · 550 阅读 · 0 评论 -
.net 反射机制
<br />提纲: <br />1、 什么是反射 <br />2、 命名空间与装配件的关系 <br />3、 运行期得到类型信息有什么用 <br />4、 如何使用反射获取类型 <br />5、 如何根据类型来动态创建对象 <br />6、 如何获取方法以及动态调用方法 <br />7、 动态创建委托 <br /> <br />1、什么是反射 <br /> Reflection,中文翻译为反射。 <br /> 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Ass原创 2011-03-07 20:18:00 · 323 阅读 · 0 评论 -
什么是强类型,弱类型,有型别,无型别
<br />.NET Framework 和Visual Studio为你提供了三种主要方法在应用程序中表示数据: <br />* <br />ADO.NET中的DataSet(包括有型别和无型别)和DataTable类 <br />* <br />System.Xml命名空间中的XmlDataDocument和XmlDocument类 <br />* <br />包含自定义属性的自定义类 <br />尽管ADO.NET和System.Xml命名空间提供了标准的类来表示数据,但是, <br />---强类型转载 2011-03-07 21:59:00 · 598 阅读 · 0 评论 -
.net 2.0中新增的nullable类型
.net 2.0中,有新增的nullable类型,主要可以用为基本的值类型赋予null的值,比如<br /><br /><br /><br />int? k = 3;//一个可为空的值类型(简称空类型)<br />int m = null;//错误<br />int? j = null;//成功<br />从上面的例子我们可以看到在值类型后可以定义一个可为空的值类型,在C#中,是在基本类型后加一个?号,而在VB.NET中,可以这样<br /><br />Dim dtmVarName As Nullable(原创 2011-03-07 21:25:00 · 305 阅读 · 0 评论 -
C#实现HTTP协议下的多线程文件传输
<br />很多人都有过使用网络蚂蚁或网络快车软件下载互联网文件的经历,这些软件的使用可以大大加速互联网上文件的传输速度,减少文件传输的时间。这些软件为什么有如此大的魔力呢?其主要原因是这些软件都采用了多线程下载和断点续传技术。如果我们自己来编写一个类似这样的程序,也能够快速的在互联网上下载文件,那一定是非常愉快的事情。下面我就讲一讲如何利用C#语言编写一个支持多线程下载文件的程序,你会看到利用C#语言编写网络应程序是多么的容易,从中也能体会到C#语言中强大的网络功能。<br /><br /> 首先介绍一原创 2011-03-21 17:46:00 · 610 阅读 · 0 评论 -
C# .NET Debug工具、UML工具介绍
最近迷上了Debug,同时有个开源的C#软件想分析一下,于是到处找调试工具,以及根据C#代码生成UML图的UML工具。在这作个记录,为有同样需求的人节约时间。 UML Tools 比较好用的: Borland Together 2008、Rose、StartUML、Visual Paradigm、OptimalJ、Poseidon for UML、Power Designer .NET开发比较好用的: Enterprise Architect (综合性能最好) Visual Paradigm Sui原创 2011-03-25 09:23:00 · 1018 阅读 · 0 评论 -
IL应用之——用IL分析接口的本质
<br />IL反编译利器——Ildasm.exe和Reflector.exe:<br /> <br />一:Ildasm.exe简介 <br /> 这一微软VS自带工具,在上一篇博文《初识Ildasm.exe——IL反编译的实用工具》中已经做了详细介绍,这里不再鳌述;<br /> <br />二:Reflector.exe简介<br /> 至此(10.02.03),从 http://www.aisto.com/roeder/dotnet 下载的最新版本为Latest version: 5原创 2011-04-27 22:27:00 · 670 阅读 · 0 评论 -
初识Ildasm.exe——IL反编译的实用工具
<br />Ildasm.exe 概要:<br /> <br />一.前言:<br /> 微软的IL反编译实用程序——Ildasm.exe,可以对可执行文件(ex,经典的控制台Hello World 的 exe 可执行文件)抽取出 IL 代码,并且给出命名空间以及类的视图。在讲述如何反编译之前,有必要从虚拟CPU的角度来看CLR,这样有助于先从正面了解代码执行过程。<br />虚拟CPU:<br /> .NET 程序,其核心皆为 CLR ,而同时CLR的功能却与CPU非常相近,其中CLR执行I原创 2011-04-27 22:26:00 · 779 阅读 · 0 评论 -
接口与抽象详细比较
<br />什么是.NET接口 <br />.NET接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。但是注意:C#中不能包含任何静态成员。一个类可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的所有方法。<br />定义方法为:<br />public interface System.IComparable<br /原创 2011-04-27 21:57:00 · 511 阅读 · 0 评论 -
判断DataSet和DataTable是否为空
if(ds != null && ds.Table.Count>=0 && ds.Table[0].Rows.Count>0) { ds.Table[0].Row[0]["name"]; } 判断DataSet是否为空//*****************判断DataSet是否为空DataSet ds=new DataSet();if(ds != null原创 2011-06-15 10:22:00 · 4819 阅读 · 0 评论 -
编程资料 -C# 多线程
<br />编程资料 - 多线程<br />C#多线程编程实例实战<br />作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996<br />单个写入程序/多个阅读程序在.Net 类库中其实已经提供了实现,即<br />System.Threading.ReaderWriterLock 类。本文通过对常见的单个写入/多个阅读程序的分析来探索c#<br />的多线程编程。<br />问题的提出<br />所谓单个写入程序/多个阅读程序的线程同步问转载 2011-04-19 22:57:00 · 7624 阅读 · 0 评论 -
编程资料 -C# 多线程
<br />编程资料 - 多线程<br />C#多线程编程实例实战<br />作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996<br />单个写入程序/多个阅读程序在.Net 类库中其实已经提供了实现,即<br />System.Threading.ReaderWriterLock 类。本文通过对常见的单个写入/多个阅读程序的分析来探索c#<br />的多线程编程。<br />问题的提出<br />所谓单个写入程序/多个阅读程序的线程同步问转载 2011-04-19 22:54:00 · 5422 阅读 · 0 评论 -
C#多线程系列
<br />什么是进程?<br />当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。<br />而一个进程又是由多个线程所组成的。<br /><br />什么是线程?<br />线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。<br /><br />什么是多线程?<br />多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创转载 2011-05-31 23:19:00 · 463 阅读 · 0 评论 -
简单的C#多线程间同步
<br />在开发中经常会遇到线程的例子,如果某个后台操作比较费时间,我们就可以启动一个线程去执行那个费时的操作,同时程序继续执行。在某些情况下可能会出现多个线程的同步协同的问题,下面的例子就展示了在两个线程之间如何协同工作。<br />这个程序的思路是共同做一件事情(从一个ArrayList中删除元素),如果执行完成了,两个线程都停止执行。<br />代码如下:<br /><br />using System;<br />using System.Collections;<br />using Syste原创 2011-04-11 22:58:00 · 557 阅读 · 0 评论