原文:【.NET深呼吸】清理对象引用,有一个问题容易被忽略

大家知道,托管代码一个重要的特点是自动管理内存,即我们常说的垃圾回收机制,那些高大上的理论我就不重复了,有兴趣的朋友可以翻书。我这个有个毛病 不喜欢很严肃地去说一些理论的东西,所以我不多介绍了。 一般而言,当代码执行超出某个变量的有效范围后,或者不再引用某个对象实例时,该实例会发生析构,垃圾回收器很可能就要清理门户了,当然也可能不是马上清理,也许会过一会儿再清理。 对于一些要自定义进行清理操作的类 ...

2015-02-08 16:06 6 1292 推荐指数:

查看详情

【.net 深呼吸】序列化中的“引用保留”

假设 K 类中有两个属性/字段的类型相同,并且它们引用的是同一个对象实例,在序列化的默认处理中,会为每个引用单独生成数据。 看看下面两个类。 假设 ContactInfo 表示联系方式,帅哥有两个联系方式 ...

Thu Dec 01 18:05:00 CST 2016 5 844
【.net 深呼吸】写入日志文件

记录日志,一方面可以把日志写入系统的日志存储中,可在“事件查看器”窗口中查看;如果不喜欢写到系统的日志文件中,也可以写到自己定义的文件中。 其实,日志文件就是文本文件,可能有朋友会想到用写入文本文件的方式来写日志。当然,这样做也是可以的,不过,.NET 类型库提供了两个专用记录信息的类 ...

Sun Jun 19 19:16:00 CST 2016 5 1839
【.net深呼吸】(WCF)OperationContextScope 的用途

一个WCF服务可以实现多个服务协定(服务协定实为接口),不过,每个终结点只能与一个服务协定关联,并指定调用的唯一地址。那么,binding是干吗的?binding是负责描述通信的协议,以及消息是否加密等内容。 好,不扯F话,说说今天的主题——OperationContextScope,这是一个类 ...

Sat Jul 02 20:33:00 CST 2016 2 1566
【.NET深呼吸】元组数据(Tuple)

各位观众,大家好,欢迎收看由火星电视台直播的《老周吹牛》节目,注意:本节目没有任何技术含量,如果您没有兴趣,请砸掉电视机。 今天说一下System命名空间下的一个数据类型——Tuple,翻译过来叫“元组”,其实翻译后我也不知道什么意思,很多专有名词翻译后都不知道什么意思。 尽管不知道是什么 ...

Tue Sep 15 01:45:00 CST 2015 1 1980
【.net 深呼吸】项目中是否有必要删去多余的引用

很多大伙伴们常常会苦思一个问题:项目代码中用不到的引用,是不是应该删除,以避免代码在编译后存在太多的无意义引用? 其实,这个问题,你完全可以自己去应证的,咋应证呢?知道反射吗,对了,只要你知道这玩意儿,那事情就好 do 了。 我建了一个控制台应用项目,然后,如下图,我在【引用】节点下添加 ...

Sat Feb 11 20:15:00 CST 2017 3 1305
【.net 深呼吸】启动一个进程并实时获取状态信息

地球人和火星人都知道,Process类既可以获取正在运行的进程,也可以启动一个新的进程。在79.77%应用场合,我们只需要让目标进程顺利启动就完事了,至于它执行了啥,有没有出错,啥时候退出就不管了。 但是,在某些情况下,启动新进程后,还希望能向目标进程传送数据,或者实时读取来自新进程的信息 ...

Fri Oct 14 02:13:00 CST 2016 5 2597
【.NET深呼吸】基于异步上下文的本地变量(AsyncLocal)

在开始吹牛之前,老周说两个故事。 第一个故事是关于最近某些别有用心的人攻击.net的事,其实我们不用管它们,只要咱们知道自己是.net爱好者就行了,咱们就是因为热爱.net才会选择它。这些人在这段时间攻击.net,估计和.net的开源、跨平台有关,并且,据说VS 2015 Update ...

Tue Dec 01 01:36:00 CST 2015 9 7079
【.net 深呼吸】细说CodeDom(2):表达式、语句

在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系。 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下。严格上说,Emit并不是针对代码文档生成和编译而设计的,Emit一方面可以实时发出 IL 指令,另一方面也支持动态程序集 ...

Sun Dec 11 19:10:00 CST 2016 7 3912
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM