随笔分类 - .Net
[转帖].Net 的托管与内存回收
摘要:引言 作为一个.NET程序员,我们知道托管代码的内存管理是自动的。.NET可以保证我们的托管程序在结束时全部释放,这为我们编程人员省去了不少麻烦,我们可以连想都不想怎么去管理内存,反正.NET自己会保证一切。 好吧,有道理,有一定的道理。 问题是,当我们用到非托管资源时.NET就不能自动管理了。这是因为非托管代码不受CLR(Common LanguageRuntime)控制,超出CLR的管理范围。...
阅读全文
.Net 读写注册表
摘要:在开发过程中,经常会遇到需要将有些信息写到注册表里,或者从注册表中读取信息。那该如何用.Net读写注册表呢?
阅读全文
.Net 中获取磁盘序列号和CPU序列号的方法
摘要: 试用版的软件总是会采取这样或那样的方式来限制用户的软件试用期。
这些方法有:限制时间、限制磁盘序列号,限制CPU序号好,限制使用次数等
下面介绍如何通过.Net获取磁盘序列号和CPU的序列号。
阅读全文
.Net 中的托管函数 Delegate
摘要:托管函数是一个对类里面的某个函数的一个引用。它自己并没有具体的函数定义,只是指向某个函数实现。
由于托管函数是对类里面某个函数的一个引用。所以我们不必知道这个函数的具体名字是什么,而只需要调用托管函数,让托管函数去调用相应的函数就可以了。
阅读全文
Remoting基本原理及其扩展机制(3)
摘要:应用程序域
应用程序域(通常简称为AppDomain)可以视为一种轻量级进程。一个Windows进程内可以包含多个AppDomain。 AppDomain这个概念的提出是为了实现在一个物理服务器中承载多个应用程序,并且这些应用能够相互独立。ASP.NET中利用AppDomain在同一个进程内承载了多组Web应用程序就是一个例子。实际上微软曾进行过在单一进程内承载多达1000个简单Web应用程序的压力测试。
阅读全文
Remoting基本原理及其扩展机制(2)
摘要:在上一篇文章我们已经介绍到通过在配置文件中指定自定义的ChannelSinkProvider,我们可以在Pipeline中加入自己的ChannelSink,此时我们就可以加入自己的信息处理模块,但是这里我们所能操作的对象是已经经过格式化的消息(即数据流),我们看不到原始的消息对象,这也势必影响了我们所能实现的扩展功能。而在上文的图1中,我们看到除了ChannelSink可以扩展之外,我们还可以加入自定义的MessageSink,而它是位于格式器之前的,也就是说在 MessageSink中我们可以直接操作尚未格式化的消息对象。此时,我们就获得一个功能更强大的扩展点。直接操作消息对象,这意味着什么呢?
阅读全文
Remoting基本原理及其扩展机制(1)
摘要:.NET Remoting是.NET平台上允许存在于不同应用程序域中的对象相互知晓对方并进行通讯的基础设施。调用对象被称为客户端,而被调用对象则被称为服务器或者服务器对象。简而言之,它就是.NET平台上实现分布式对象系统的框架。
传统的方法调用是通过栈实现,调用方法前将this指针以及方法参数压入线程栈中,线程执行方法时将栈中的参数取出作为本地变量,经过一番计算后,将方法的返回结果压入栈中。这样我们就完成了一次方法调用。
阅读全文
浙公网安备 33010602011771号