问题标签 [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.
.net - Mono.Cecil 将 .exe 转换为 dll?
有没有办法使用Mono.Cecil将exe转换为dll,(删除图标和其他不需要的数据,删除EntryPoint)
好像一点效果都没有。。
c# - 如何使用 Mono.Cecil 获取 IL 指令的源代码/行号
我正在使用 Mono.Cecil 编写一个简单的实用程序,用于查找 .NET 程序集中的类型/方法使用情况(例如,在枚举上调用 ToString)。
我能够找到该方法,但是向用户显示源/行信息会很酷。Mono.Cecil 可以做到这一点吗?
c# - 使用 Mono.Cecil 更改应用程序类型?
如何使用 Mono.Cecil 将应用程序从控制台应用程序类型修改为 Windows 应用程序类型,反之亦然?
.net - 在 IMetadataImport 或 MonoCecil 中,如何确定内部类中的方法是否可以从其他程序集访问?
可以从程序集外部访问内部类的公共方法的一种情况是,该方法实现了接口方法或覆盖了在公共基类中定义的虚拟方法。
使用 IMetadataImport,如何确定特定 mdMethodDef 是否属于这种情况?
更新:我也想知道如何在 Mono.Cecil 中执行此操作,因为这可能会帮助我弄清楚如何在 IMetaDataImport 中执行此操作。
.net - 如何使用 Mono.Cecil 更改类型的访问器
这可能吗?
我想在内部创建一个公共课程。
谢谢
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# 版本。
.net - 在 C# 中实现编译器最有趣和最有前途的方法是什么?
我刚刚开始我的毕业项目,该项目应该持续 6 个月。该项目的目标是为一种脚本语言实现一个 .Net 编译器。我在课程中将编译器构造作为一个主题,并且知道如何实现编译器的基本步骤,但是我们使用 Bison 和简单的编译器以及 GCC 作为后端,因此我对实现编译器知之甚少在.Net平台上。
在对这个主题进行了一些研究之后,我发现了以下代码生成的替代解决方案(我不是在谈论编译器的其他重要部分,比如解析器——它超出了这里的范围):
- 使用Reflection.Emit直接生成代码。
- 在 Reflection.Emit 上使用通用编译器接口抽象来自动化某些代码生成。
- 在运行时使用CodeDOM进行 C# 和 VB 编译。
- 有一个新出现的 C#“编译器即服务”,称为Roslyn,现在可作为 CTP 使用。
- DLR提供对动态代码生成的支持,并具有一些用于通过表达式树等生成运行时代码的接口。
- Mono 附带Mono.Cecil库,该库似乎也具有一些代码生成功能。
我项目的主要目标是更深入地研究 .Net,学习编译器构造并为我的工作取得好成绩。第二个目标是提出一个编译器实现,以后可以在许可的开源许可下向社区开放。
那么,什么是最有趣、最有教育意义、最有趣和最有前途的方法呢?如果我有更多时间,我肯定会尝试所有这些,但我需要在 6 个月内提交我的工作以获得积极的成绩......
提前谢谢你,亚历山大。
mono.cecil - 无法使用 Mono.Cecil 找到 AssemblyFactory 类
我正在使用Mono.Cecil DLL 文件并编写以下代码:
我的项目没有被编译,因为它无法找到“AssemblyFactory”类。好像这个类根本不存在于 DLL 文件中。我添加了 mono.cecil.dll 文件作为对我的项目的引用。这个类是否存在于 DLL 文件之外的某个地方,可能存在于.NET级别的其他 DLL 文件中?
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。
c# - 使用 mono.cecil 添加自定义属性?
我不知道如何使用 Mono.Cecil 将自定义属性添加到方法中我想要添加的属性是这样的:
有谁知道如何添加自定义属性