下载地址IL_Mapper2_exe.zip

源文件IL_Mapper2_src.zip

简介

此工具可以直接把C#代码转换成IL代码查看,省去编译和手动操作ildsam的繁琐。希望能对想研究IL的各位有所帮助。

效果图

后话

如果需要在Vs环境中查看IL代码, 可以选择使用VS插件,如:点击

还有其它一些产品也不错,如评论中@KOFIP推荐的Reflector插件和基于Mono的IL Spy(这个程序的图标就是从IL Spy中Copy过来的)。

使用此工具也有一定的优点,那就是代码在自己手上,可以自行扩展:如增加代码保存和查看功能,以管理个人重要的代码片段。

编码小记

源码中比较有意思的问题是”如何让Avalon.TextEditor的Text实现双向绑定"。昨天参照了stackoverflow上一帖子,完全没用。没有办法,只好自己仔细研究。过程不多说,结论如下:

1 只有依赖属性才能加入绑定。

2 依赖属性的值存放在“别处”,不在”依赖对象“中。值通过GetValue和SetValue访问。

3 绑定表达式执行时,调用SetValue对依赖属性(TextProperty)进行赋值,而不是调用Text的Set方法。

4 SetValue会更新依赖属性的值,再调用OnPropertyChange,通知属性变更。此时如果有双向绑定,会由此通知数据源更新值,如更新Controller中的Code属性。示例中在TextEditor的TextChanged事件中,使用此方法同步Editor的base.Text值到依赖属性。

5 PropertyMetadata(callback)中,callback为SetValue的回调方法,执行依赖属性值改变后的后续动作。示例中用于同步依赖属性Text的值到base.Text中。

[工具]IL Mapper2(C# -> IL 转换器)的更多相关文章

  1. PDF转WORD工具推荐:迅捷PDF转换器6.8版

    迅捷PDF转换器是一款功能强大的pdf转换成word转换器软件.它不仅支持pdf转换成word,word转pdf,还可以实现excel,ppt,jpg与pdf文件的一键式转换.有了它,你可以很轻松转换 ...

  2. 学习微软中间语言(MSIL)的绝佳工具 Dotnet IL Editor 推荐

    Dotnet IL Editor是一款.NET平台反编译工具,可以反编译.NET程序集文件为IL代码,并且可以执行,调试反编译后生成的IL代码.它的设计出发点比较直观,新建一个项目,添加程序集文件,设 ...

  3. CLR via C# 摘要二:IL速记

    最简单的IL程序 .assembly test {} .method void Func() { .entrypoint ldstr "hello world" call void ...

  4. IL实现简单的IOC容器

    既然了解了IL的接口和动态类之间的知识,何不使用进来项目实验一下呢?而第一反应就是想到了平时经常说的IOC容器,在园子里搜索了一下也有这类型的文章http://www.cnblogs.com/kkll ...

  5. IL初步了解

    一.概述: 近来也是在看AOP方面的东西,了解到Emit可以实现.之前对Emit的了解也就是停留在Reflector针对方法反编译出来的部分指令.就用这次机会学习下Emit也用这篇随笔记录下学习的过程 ...

  6. 《你必须知道的.NET》读书笔记:从Hello World认识IL

    通用的语言基础是.NET运行的基础,当我们对程序运行的结果有异议的时候,如何透过本质看表面,需要我们从底层来入手探索,这时候,IL便是我们必须知道的基础. 一.IL基础概念 1.1 什么是IL? IL ...

  7. 转载文章----IL反编译利器——Ildasm.exe和Reflector.exe:

    转载地址:http://www.cnblogs.com/yangmingming/archive/2010/02/03/1662546.html 一:Ildasm.exe简介  这一微软VS自带工具, ...

  8. 在VS里配置及查看IL

    在VS里配置及查看IL 来源:网络 编辑:admin 在之前的版本VS2010中,在Tools下有IL Disassembler(IL中间语言查看器),但是我想直接集成在VS2012里使用,方法如下: ...

  9. 为VS集成IL环境

    为VS2012集成IL工具 在之前的版本VS2010中,在VS的安装目录下/Tools/IL Disassembler这个工具(IL中间语言查看器),但是我想直接把它集成在VS2012里使用, 操作方 ...

随机推荐

  1. CSS3之阴影

    CSS3中新增属性-阴影,可以做出很多漂亮的效果. 文字阴影text-shadow text-shadow属性值的顺序: text-shadow: h-shadow v-shadow blur col ...

  2. C++三大库boost、loki、stlport

    转: STL是一个标准,各商家根据这个标准开发了各自的STL版本.而在这形形色色的STL版本中,SGI STL无疑是最引人瞩目的一个.这当然是因为这个STL产品系出名门,其设计和编写者名单中,Alex ...

  3. Android Virtual Devices代理上网

    本机电脑是使用代理上网,然后要在avd中要连接互联网,设置步骤如下: Click on Menu Click on Settings Click on Wireless & Networks ...

  4. CentOS 5.x版本升级Mysql

    #-----------------------------CentOS 5.x版本升级Mysql ------------------#! /bin/sh #1.关闭selinuxcp -rp /e ...

  5. partial class 说明

    C# 2.0 可以将类.结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可. 例如:下面的PartialTest类 class PartialTest { string ...

  6. 获取屏幕分辨率(C#)

    C#获取屏幕分辨率的方法 static void Main(string[] args) { // 控制台程序,需要添加程序集: // using System.Drawing; // using S ...

  7. sqoop的codegen工具

    一.codegen工具的使用 sqoop codegen --connect jdbc:mysql://localhost:3306/test --username root --password 1 ...

  8. onClick事件实现方式(打电话为例子)

    1.在button 中 android:onclick="call" 注意事项:①.方法的名字必须是call ②.区别大小写 ③.call方法必须接收一个View类型的参数 ④.方 ...

  9. delphi 单引号在字符串中使用方法

    可以看delph的帮助,里面有这个问题详细说明:A character string, also called a string literal or string constant, consist ...

  10. MVC MVVM Knockout viewmodel 提交 完整过程,包含序列化 JSON 和 字典模型绑定

    //JSON 通用操作------------------------------------------------------------------------------using Syste ...