imparser

让FileDisassembler支持VS 2008

昨天顺便就去下载了 FileDisassembler 的源代码,想看看能不能把它修正下,以支持VS2008.

1.修改resx的路径,这个简单,在生成resx文件时候,把生成的filename做一下修改就成.

2.打开项目发现,转换的resx还是没有和对应的cs关联.怎么回事呢.发现里面的CSharpProject.xml的版本是 ProductVersion = "7.10.3077",而在生成资源文件的时候DependentUpon = "VSDisassemblerControl.cs"却没有了.做了个试验,手动打开项目文件,加上这句转换成vs2008后,还是没法对应起来.看来是整个项目文件格式就不一样了,于是对VS2008的csproj文件研究了下,决定把它生成的直接转换到2008的格式上来.
XML还是不熟,做起来不是很顺,特别是在加Node后自己生成了xmlns=""这个属性,让我郁闷了好久,最后找到了对应的文章才搞定.

3.关于System.Windows.Form空间的问题.由于FileDisassembler也是调用Reflector的方法直接写入的,就没法判断什么控件是对应空间的了,于是就没修改.

4..Net版本,本来应该可以找到Reflector使用的版本号的,但是好像直接用默认的3.5去打开项目也没问题,就不改项目文件的值了.

有兴趣用的,下载试试看,如果有问题,就告诉我下,谢谢先!
Dll:
(Imparser Fixed)FileDisassembler.rar
Source:
(Imparser Fixed)FileDisassemblerSources.rar


下面是解决xmlns问题的出处:

(原创)怎么去掉xmlns,终于找到解决方法了
2007-05-16 14:42

Create一个新节点,居然多出了xmlns="",

折腾了半天终于找到解决方法,如下:

原因是所要插入的节点的父节点中定义了命名空间xmlns,

当节点插入时必须定义命名空间属性,而且要

与其父节点的xmlns相同。

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<stream:stream xmlns:stream="http://www.css.net/im/streams">
<rtx id="rtx.syn.user.remove1000000" type="remove" xmlns="rtx.syn.dept">
<Parameter>
   <DeptName>123</DeptName>
   <bDelComplete>123</bDelComplete>
</Parameter>
</rtx>
</stream:stream>

在父节点<rtx>中添加<error>节点
Set error = xmldocument.createNode("element", "error", "rtx.syn.dept")

结果:

<?xml version="1.0" encoding="UTF-8"?>
<stream:stream xmlns:stream="http://www.css.net/im/streams">
<rtx id="rtx.syn.user.remove1000000" type="remove" xmlns="rtx.syn.dept">
<Parameter>
   <DeptName>123</DeptName>
   <bDelComplete>123</bDelComplete>
</Parameter> <error/>
</rtx>
</stream:stream>

 

搞定!没有了吧

只要用心,没有什么做不道













































posted on 2008-04-27 11:54  ImParser  阅读(911)  评论(0编辑  收藏  举报

导航