
C#
文章平均质量分 81
DePaul
学无止境
展开
-
asp.net Cache定时器
跟据Cache的过期回调写的asp.net web定时器./// /// 缓存定时器事件委托 /// created by lihui 20100702 /// public delegate void CacheTimerEventsHandler(object sender, CacheTimerEventsArgs e); /// /// 缓存定时器事件参数 /// created by lihui 20100702原创 2010-07-06 16:35:00 · 2149 阅读 · 0 评论 -
深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第六节 理解垃圾回收GC,提搞程序性能
虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。这一节我们将介绍垃圾回收机制GC以及一些提搞程序性能的技巧。翻译 2013-12-07 00:01:25 · 4980 阅读 · 1 评论 -
使用Open XML SDK读取Excel
使用Open XML SDK读取Excel,并反射成实体类集合。原创 2014-01-09 08:34:26 · 3460 阅读 · 0 评论 -
使用OPEN XML SDK 读取EXCEL中的超链接Hyperlink
先创建一个包含所有EXCEL单元格中超链接Hyperlink数据的表,再定位单元格通过列头(如A1,B1)获取超链接信息。原创 2014-05-24 00:07:48 · 3295 阅读 · 0 评论 -
CKEditor上传插件
CKEditor的上传插件不是免费的,特此开发一个与大家共享。看图:原创 2014-05-09 00:05:19 · 2653 阅读 · 0 评论 -
垃圾回收GC:.Net自动内存管理 上(三)终结器
GC提供了另外一个能够给你带来好处的功能:终结器。在一个资源被回收后,终结器允许一个优雅的清理操作。使用终结器,当GC释放资源所占的内存时,它们可以进行适当的自我清理。表面上,终结器看起来直接了当:你创建一个带终结器的对象,当它被回收时,终结器被调用。实际上,有更多的操作你看不到。翻译 2014-07-08 00:40:22 · 3406 阅读 · 4 评论 -
垃圾回收GC:.Net自动内存管理 上(二)内存算法
GC检测用于查看堆中是否有对象不再被程序使用。如果这样的对象存在,这些对象占用的内存就可以被回收利用。(如果堆中没有可用内存空间时,new操作符将会抛出OutOfMemoryException异常)GC是怎样知道一个对象是否还被程序使用呢?你可以想象一下,这不是一个容易回答的问题。每一个程序都有一组根节点(roots),它们用于识别定位托管堆中的对象或空(null)对象指向的存储空间。比如,程序中所有全局对象指针或静态对象指针都被看作是程序根节点(roots)的一部分。另外,线程栈中任何局部变量或参数对象翻译 2014-06-28 00:21:59 · 2711 阅读 · 0 评论 -
垃圾回收GC:.Net自动内存管理 上(一)内存分配
.NET CLR将所有资源分配到托管堆上,这有点像C语言中的堆但是你不用去释放资源因为闲置资源在.NET中将被自动释放。现在就有一个问题了,托管堆是怎么知道一个对象什么时候将不再被程序使用?现今有很多的GC算法。每一个算法都针对某一特定环境进行调优,进而获得最好的性能。这篇文章着重于.NET CLR使用的GC算法。.Net下的GC完全解决了开发者跟踪内存使用以及控制释放内存的窘态。然而,你或许想要理解GC是怎么工作的。此系列文章中将会解释内存资源是怎么被合理分配及管理的,并包含非常详细的内在算法描述。同时,翻译 2014-06-27 01:58:02 · 2904 阅读 · 0 评论 -
Code First Entity Framework动态组合Lambda表达式作为数据筛选条件,代替拼接SQL语句
传统的操作数据库方式,筛选数据需要用StringBuilder拼接一大堆的WHERE子句。在Code First Entity Framework中,或许有人不断地.Where(m=>m.....)。问题来了,ID>1200和ID<1000的结果集在使用两次判断的情况下,怎么在EF中实现呢?if(条件1){list=list.Where(s=>s.ID>1200);}if(条件2){list=list.Where(s=>s.ID<1000);},结果是空集!!!看文中解决方案原创 2013-05-24 06:58:43 · 12545 阅读 · 5 评论 -
深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理
虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。这一节介绍堆栈中是怎么样存储值类型,引用类型,指针和指令的。翻译 2013-11-28 01:14:16 · 6457 阅读 · 0 评论 -
深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 2
虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。继续上篇未完成的“参数传递对堆栈的影响”。翻译 2013-12-01 00:56:03 · 3657 阅读 · 1 评论 -
深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈
简介虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。这篇文章会包含堆与栈的基础知识,变量类型,变量工作原理。翻译 2013-11-27 01:24:20 · 12135 阅读 · 1 评论 -
Excel C#读取类
Excel C#读取类原创 2011-01-19 16:43:00 · 1550 阅读 · 0 评论 -
C#队列泛型基类BaseQueue,访问索引器时自动创建类型实例
C#队列泛型基类BaseQueue,访问索引器时自动创建类型实例。原创 2011-01-19 16:46:00 · 1571 阅读 · 0 评论 -
堆,栈,值类型,引用类型
堆,栈,值类型,引用类型转载 2011-04-06 11:18:00 · 912 阅读 · 0 评论 -
强化System.Convert.ChangeType, 使其能够转换枚举ENUM和可空类型Nullable
反射操作时经常遇到类型转换操作,但系统的System.Convert.ChangeType不支持枚举ENUM和可空类型Nullable转换。使用强化版System.Convert.ChangeType前:enum MyEnum{Test1=0,Test2=1}class model{public DateTime? StartDate{get;set;}原创 2013-05-24 04:11:57 · 2897 阅读 · 0 评论 -
Code First Entity Framework基本与最佳添加(add/create),删除(delete/remove),修改(update/modify)操作
添加(add/create)操作using (var db = new MyDbContext()) { var model=new Model(){初始化}; db.Set.Add(model);//添加到集合 db.SaveChanges();//保存原创 2013-04-27 04:01:22 · 4930 阅读 · 0 评论 -
ASP.NET MVC中的依赖倒置IOC/依赖注入DI, (MircroSoft.Practices.Unity)与asp.net mvc 3的融合
基本:服务定位器和依赖注入使用了微软的MircroSoft.Practices.Unity框架.目的:配合asp.net mvc 3实现一套框架,封装变化,松耦合,依赖注入但不使用配置文件.思想:使用MircroSoft.Practices.Unity原创 2011-08-04 16:01:40 · 4433 阅读 · 5 评论 -
HTTPS跳转框架HTTP Security--Asp.net和ASP.NET MVC下可自由配置URL的HTTPS跳转框架
一个简单易扩展的HTTP跳转HTTPS的框架。由配置文件配置规则,然后在HTTPMODULE里截获请求进行规则验证是否跳转HTTPS. 组成: web.config,用来配置规则;HttpsConfiguration,用于读取配置文件;HttpSecurityModule,用来截获请求触发规则验证;RequestProcessor,用既有规是验证请求;PathsMatcher,多路径(URL)匹配器;PathMatcher,单URL路径匹配器;PathMatcherFactory,用于创建StartsWi原创 2013-11-25 03:55:25 · 6686 阅读 · 14 评论 -
对Cache类的一个泛型包装CacheHelper
对Cache类的一个泛型包装CacheHelper原创 2014-02-12 08:14:10 · 2749 阅读 · 0 评论 -
扩展Bundle支持动态Bundle和javascript混淆
两个目的:支持动态页面上的Bundle,而不必每次在Global中添加Bundle。支持Javascript混淆原创 2014-02-13 02:18:28 · 4223 阅读 · 0 评论 -
深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型
虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。本文将介绍值类型与引用类型在堆栈里的基本存储原理。翻译 2013-11-29 04:18:39 · 5021 阅读 · 3 评论 -
深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第四节 参数传递对堆栈的影响 1
虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。这篇文章我们将介绍一些方法参数传递行为在堆与栈中的影响。前几节我们介绍了堆与栈的基本工作原理,程序执行时值类型与引用类型在堆栈中的存储。另外,我们已经介绍了一些关于指针的基本知识。这一节中参数传递对堆栈的影响很重要,下面会慢慢道来。翻译 2013-11-30 01:55:25 · 12703 阅读 · 11 评论 -
深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第五节 引用类型复制问题及用克隆接口ICloneable修复
虽然在.Net Framework 中我们不必考虑内在管理和垃圾回收(GC),但是为了优化应用程序性能我们始终需要了解内存管理和垃圾回收(GC)。另外,了解内存管理可以帮助我们理解在每一个程序中定义的每一个变量是怎样工作的。这一节我们将介绍引用类型变量在堆中存储时会产生的问题,同时介绍怎么样使用克隆接口ICloneable去修复这种问题。翻译 2013-12-03 01:37:09 · 4516 阅读 · 5 评论