[工具]IL Mapper2(C# -> IL 转换器)_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > [工具]IL Mapper2(C# -> IL 转换器)

[工具]IL Mapper2(C# -> IL 转换器)

 2014/9/30 14:07:09  Caption  程序员俱乐部  我要评论(0)
  • 摘要:下载地址:IL_Mapper2.zip源文件:IL_Mapper2_src.zip简介此工具可以直接把C#代码转换成IL代码查看,省去编译和手动操作ildsam的繁琐。希望能对想研究IL的各位有所帮助。效果图:编码小记源码中比较有意思的问题是”如何让Avalon.TextEditor的Text实现双向绑定"。昨天参照了stackoverflow上一帖子,完全没用。没有办法,只好自己仔细研究。过程不多说,结论如下:1只有依赖属性才能加入绑定。2依赖属性的值存放在&ldquo
  • 标签:C# Map 工具 APP

下载地址:IL_Mapper2.zip

源文件: IL_Mapper2_src.zip

 

简介

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

 

效果图

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" alt="" />

 

编码小记

 源码中比较有意思的问题是”如何让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中。

上一篇: jms-spring 下一篇: 没有下一篇了!
发表评论
用户名: 匿名