问题标签 [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 回答
1512 浏览

.net - 在 IL 中查找方法调用的参数值

我有几个特殊的方法,我想分析它们在编译的程序集中调用。

例子:

从这个编译的代码中,我想得到参数值{“应该创建具有指定大小的“,MyClass,”数组。” }。我尝试使用 Mono 的 Cecil,并找到了调用“ToDo”方法的说明。但是现在我很困惑如何用参数值来识别指令。

我知道,情况可能很复杂,有些参数的值无法解决。但我只需要解析常量值 - 这足以满足我的目的。

谢谢。

编辑: “ToDo”方法(和类似方法)应用作注释的替代方法( //, /* ... */ ),编译后,应进行 IL 分析并自动生成文档和具体装配的 todo-list .

0 投票
2 回答
4687 浏览

c# - Mono.Cecil - 如何获取自定义属性

我正在尝试使用 Cecil 检查与给定方法关联的属性。它似乎找到了它,但我无法使用以下代码获取它的名称:

我知道这一定是我将函数设置为的属性,因为当我从 dll 中删除它时,第二行代码将变为 null。我想做的是能够获得属性的名称。目前第二行代码将只返回一个“Mono.Cecil.CustomAttribute”。我猜应该有一种获取属性名称(类类型)名称的方法,对吧?

谢谢!

0 投票
1 回答
1284 浏览

c# - Cecil - 获取定义的属性属性

我正在使用 Cecil 尝试读取我的属性属性:

...

也就是说,我希望最后一段代码检查何时应用于 Main 的属性,例如,将 MethodMessages 设置为 true 或 false。从我所见,似乎 attributes.Fields.Count 和 attributes.Properties.Count 都设置为 0。为什么会这样?

谢谢

0 投票
3 回答
6319 浏览

.net - Mono Cecil vs. PostSharp Core vs. Microsoft CCI 用于实现 AOP 框架

在功能、易用性、文档、示例、社区/支持、VS 集成、已知实现、长期可行性和构建自定义 AOP 框架的构建速度方面,哪个更好?

我将从我所知道的开始(到目前为止我只尝试过 PostSharp):

  • Microsoft Common Compiler Instrastruture (CCI):我读过它用于 FxCop、ILMerge、Spec# 和代码合同。它似乎是非常低的级别,因为它甚至不负责纠正使用它修改 IL 时被破坏的分支代码的偏移量
  • PostSharp已经 5 岁了,具有许多 AOP 功能(例如,抽象了一些您需要手动完成的事情,而 IL 离开),源代码可用,仅由一个人开发/支持,但他正计划将其作为一项业务,有文档但可能会更好,构建需要大约两倍的时间,关于如何注入 IL 的样本非常少,并且版本 2.0 将很快发布,这有望得到很大改进。
  • Mono Cecil:由一个人编写,是 Mono 套件的一部分,并且有一个名为 Reflexil 的 Reflector 插件,它使用 Mono Cecil。
0 投票
1 回答
1377 浏览

c# - 确定所有引用的程序集

我需要确定某个 .NET Compact Framework 程序集引用的所有程序集。你认为塞西尔有可能吗?

这样,我们的部署工具就可以自动解决 .NET Compact Framework 应用程序的所有依赖关系。

0 投票
1 回答
336 浏览

c# - Mono.Cecil 中的以下构造在 C# 中指的是什么?

有人能解释一下这些指的是什么吗?

如果您可以举例说明,那将是理想的。

我正在尝试在Mono.Cecil.

0 投票
2 回答
534 浏览

c# - 预处理 C# - 检测方法

我需要能够预处理多个 C# 文件作为项目的预构建步骤,检测方法的开始,并在方法的开始,在任何现有代码之前插入生成的代码。但是,我在检测方法的打开时遇到问题。我最初尝试使用正则表达式进行匹配,但最终误报太多。

我会使用反射,但 MethodInfo 类不引用原始源中的点。

编辑:我在这里真正想做的是支持方法的前置条件,该前置条件代码由方法上的属性确定。我最初的想法是我可以寻找方法的开头,然后插入生成的代码来处理前置条件。

有一个更好的方法吗?如果需要,我愿意创建 Visual Studio 插件。

这是一个 .NET 2.0 项目。

干杯

0 投票
3 回答
765 浏览

.net - 检测程序集是否是为 .NET Compact Framework 构建的

拥有一个 .NET 程序集,我如何检测它是为 .NET CF 还是为完整框架构建的?

0 投票
2 回答
1038 浏览

silverlight - 检测程序集所需的 Silverlight 版本

如何判断 Silverlight 2 是否足以用于装配或是否需要 Silverlight 3?
我拥有通过反射 (Mono.Cecil) 可获得的所有信息。

SL 3 与 4 的问题相同。

提前致谢。

0 投票
1 回答
351 浏览

c# - 如何从 CIL 指令中判断一个字段是被读取还是被写入?

我目前正在使用 Mono Cecil 从 C# 项目中提取数据。现在我需要检查每个方法中是否读取或写入了一个字段。

如何从CIL 指令中得知正在读取或写入字段?

因为我怀疑 Mono Cecil 中有一个类似于Eclipse 的 JDT 中的分配的库,它允许我提取左侧和右侧。如果有,那么我可以从那里开始工作。