首页
社区
课程
招聘
[求助]有人用过Mono.Cecil 0.7及以上版本吗?
发表于: 2010-5-27 21:38 4323

[求助]有人用过Mono.Cecil 0.7及以上版本吗?

2010-5-27 21:38
4323
在网上找了下,0.6版以后直接就是0.9了,没找到0.7/0.8版

0.6版(我是0.6.9.0)似乎有BUG

我用ModuleDefinition.Inject方法注入一个TypeDefinition(例如叫Class1),如果Class1的某个函数中调用了Class1的另一个函数,注入后就会出错:

class my
{
public static void M()
{
Console.WriteLine("a");
}
public static void hoho()
{
Console.WriteLine("b");
}
}

如果把my注入到别的程序集,没有任何问题,而且目标程序集不会依赖my原来所在的程序集

但是如果改成:

class your
{
public static void M()
{
hoho();//调用了your类的其它函数
}
public static void hoho()
{
Console.WriteLine("b");
}
}

注入就会失败,用Reflector查看注入后的程序集,就发现hoho函数正常,而浏览到M函数,会弹出一个对话框,让你浏览your原来所在的程序集,而且查看目标程序集也会发现,会依赖原程序集的,最郁闷的是,即使把原程序集放到同一目录,注入后的程序集运行后也崩溃(前提是要调用注入的类中的方法)

所以我想试试0.7及其以后的版本,结果只找到0.9(0.9.2.0),但是却发现类库变得面目全非了,其ModuleDefinition类已经不包含Inject函数了

想问一下,0.6.9.0这是个BUG吗?或者后续版本应该怎么用?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//