问题标签 [mono.cecil]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
848 浏览

.net - Mono.Cecil 将 .exe 转换为 dll?

有没有办法使用Mono.Cecil将exe转换为dll,(删除图标和其他不需要的数据,删除EntryPoint)

好像一点效果都没有。。

0 投票
1 回答
2990 浏览

c# - 如何使用 Mono.Cecil 获取 IL 指令的源代码/行号

我正在使用 Mono.Cecil 编写一个简单的实用程序,用于查找 .NET 程序集中的类型/方法使用情况(例如,在枚举上调用 ToString)。

我能够找到该方法,但是向用户显示源/行信息会很酷。Mono.Cecil 可以做到这一点吗?

0 投票
2 回答
381 浏览

c# - 使用 Mono.Cecil 更改应用程序类型?

如何使用 Mono.Cecil 将应用程序从控制台应用程序类型修改为 Windows 应用程序类型,反之亦然?

0 投票
2 回答
560 浏览

.net - 在 IMetadataImport 或 MonoCecil 中,如何确定内部类中的方法是否可以从其他程序集访问?

可以从程序集外部访问内部类的公共方法的一种情况是,该方法实现了接口方法或覆盖了在公共基类中定义的虚拟方法。

使用 IMetadataImport,如何确定特定 mdMethodDef 是否属于这种情况?

更新:我也想知道如何在 Mono.Cecil 中执行此操作,因为这可能会帮助我弄清楚如何在 IMetaDataImport 中执行此操作。

0 投票
1 回答
1136 浏览

.net - 如何使用 Mono.Cecil 更改类型的访问器

这可能吗?

我想在内部创建一个公共课程。

谢谢

0 投票
1 回答
591 浏览

vb.net - Mono.Cecil 可以将调试符号重写为 VB.NET 吗?

使用 Mono.Cecil 重写 VB.NET 程序集后,Visual Studio 2010 中的“调用堆栈”调试窗口将语言显示为 C# 而不是 VB.NET。是否可以配置 Mono.Cecil 来重写程序集,以便调试器将重写的程序集识别为 VB.NET?

以下 Mono.Cecil 无需修改即可读取并保存程序集。但是,调试器将新程序集读取为 C# 而不是 VB.NET。

重写的程序集最好是 VB.NET,因此调试窗口“本地”和“立即窗口”是 VB.NET 版本而不是 C# 版本。

0 投票
3 回答
554 浏览

.net - 在 C# 中实现编译器最有趣和最有前途的方法是什么?

我刚刚开始我的毕业项目,该项目应该持续 6 个月。该项目的目标是为一种脚本语言实现一个 .Net 编译器。我在课程中将编译器构造作为一个主题,并且知道如何实现编译器的基本步骤,但是我们使用 Bison 和简单的编译器以及 GCC 作为后端,因此我对实现编译器知之甚少在.Net平台上。

在对这个主题进行了一些研究之后,我发现了以下代码生成的替代解决方案(我不是在谈论编译器的其他重要部分,比如解析器——它超出了这里的范围):

  1. 使用Reflection.Emit直接生成代码。
  2. 在 Reflection.Emit 上使用通用编译器接口抽象来自动化某些代码生成。
  3. 在运行时使用CodeDOM进行 C# 和 VB 编译。
  4. 有一个新出现的 C#“编译器即服务”,称为Roslyn,现在可作为 CTP 使用。
  5. DLR提供对动态代码生成的支持,并具有一些用于通过表达式树等生成运行时代码的接口。
  6. Mono 附带Mono.Cecil库,该库似乎也具有一些代码生成功能。

我项目的主要目标是更深入地研究 .Net,学习编译器构造并为我的工作取得好成绩。第二个目标是提出一个编译器实现,以后可以在许可的开源许可下向社区开放。

那么,什么是最有趣、最有教育意义、最有趣和最有前途的方法呢?如果我有更多时间,我肯定会尝试所有这些,但我需要在 6 个月内提交我的工作以获得积极的成绩......

提前谢谢你,亚历山大。

0 投票
1 回答
3804 浏览

mono.cecil - 无法使用 Mono.Cecil 找到 AssemblyFactory 类

我正在使用Mono.Cecil DLL 文件并编写以下代码:

我的项目没有被编译,因为它无法找到“AssemblyFactory”类。好像这个类根本不存在于 DLL 文件中。我添加了 mono.cecil.dll 文件作为对我的项目的引用。这个类是否存在于 DLL 文件之外的某个地方,可能存在于.NET级别的其他 DLL 文件中?

0 投票
2 回答
2293 浏览

mono.cecil - 如何使用 Mono.Cecil 创建覆盖方法?

我正在使用 Mono.Cecil 生成一个程序集,该程序集包含一个派生类,该类覆盖导入的基类中的特定方法。覆盖方法是“隐式”覆盖。问题是我无法弄清楚如何将其指定为覆盖。

我正在使用以下代码来创建覆盖方法。

据我了解,隐式覆盖必须具有与继承方法相同的签名。使用上面的代码,当我在 Reflector 中查看生成的方法时,基类和派生类方法具有完全相同的签名,即“public virtual void f(int param)”。

我尝试删除显式的“虚拟”属性,但派生方法最终成为“public void f(int param)”。

如何让派生方法具有正确的“public override void f(int param)”签名?

注意:我有一个扩展方法(“TypeDefinition.Copy”),它克隆一个 MethodInfo 并通过导入所有引用的类型等返回一个 MethodDefinition。

0 投票
3 回答
3439 浏览

c# - 使用 mono.cecil 添加自定义属性?

我不知道如何使用 Mono.Cecil 将自定义属性添加到方法中我想要添加的属性是这样的:

有谁知道如何添加自定义属性