NCindy

.net平台上的高性能网络程序开发框架

CCR源码分析-分析环境准备

由于CCR的源码并没有直接公开,所以我们需要借助一些工具来窥探它的秘密。             

       

分析CCR需要如下的工具

MS Robotic Studio Express 2008R2,这个就不用解释了,安装它就是为了获得CCR

Reflector & FileDisassembler,Reflector有两个作用,一个是用来把CCR的dll文件反编译到C#语言,第二个是直接对CCR进行一些分析,而这些分析在VS中并不容易。FileDisassembler是Reflector的一个插件,用来把反编译的结果导出为一个C#工程。

Visual C# 2008 Express or Visual Studio 2010 beta2(推荐,因为VS 2010大大增强了多线程调试能力)

以上工具皆可合法的免费获得

 

CCR源码和例子程序

Microsoft.Ccr.Core.dll是我们本次要研究的对象。为了分析和调试的方便,我们需要把它用Reflector和FileDisassembler反编译。注意,反编译后的源码可能有些问题,下面记载了几个比较重要的修改:
1. Resource文件。我们需要先删除Reflector生成的Resource1.cs,然后新建一个名为Resource1.resx的资源文件,把Reflector生成的Microsoft.Ccr.Core.resx中的字符串全部复制到Resource1.resx中,最后删除原来的Microsoft.Ccr.Core.resx
2. Dispatcher.cs中有两个静态变量的初始化顺序不正确,需要吧TraceSwitchCore的声明和初始化语句放在文件最顶端。

Sample Code,为了统一起见,我选择了MSDN Mag中的这篇文章中的代码。
解压Sample Code后,用VS创建一个CCRDemo的project,把解压得到的代码添加到CCRDemo项目中,再把反编译得到的CCR源码工程也加入这个Solution中,最后给CCRDemo添加CCR的引用。如果能编译并运行CCRDemo,则说明我们的分析环境已经构建好了。

posted on 2009-11-16 15:20  iceboundrock  阅读(727)  评论(0编辑  收藏  举报

导航