mono.cecil相关内容

cecil:Instruction.Operand 类型对应 Instruction.OpCode.Code 值

是否有任何文档或 cecil 源代码的一部分,我可以查阅以全面了解 cecil 将用于给定 CodeOperand 类型> 价值?例如:我可以从 MethodBodyRocks 中收集到 Ldloc 采用 VariableDefinition 类型的 Operand,但我没有能够找到其他一些指令代码. 解决方案 可以查看OpCodes.cs 文件. 例如对于 Ldloc 你会看到 O ..
发布时间:2022-01-23 15:19:10 C#/.NET

Mono.Cecil,缺少编译器所需的成员“System.Runtime.CompilerServices.ExtensionAttribute..ctor"

我下载了最新的 Mono.Cecil,现在每当我启动我的项目时,它都会给我这个错误.如果我删除并添加 mono.cecil,它就会消失.但每次我打开我的项目时,这样做都很痛苦. 解决方案 对于所有想要在内部使用扩展方法并因此声明自己的内部 System.Runtime 的 .NET 2.0 项目来说,这个问题是一个众所周知的问题.CompilerServices.ExtensionAttr ..
发布时间:2022-01-23 15:06:23 C#/.NET

什么是“<模块>"?类型?

我正在使用 Mono.Cecil 读取由 Regex.CompileToAssembly() 生成的程序集.当我遍历类型时,在名为 的根命名空间中有一种类型.该类型没有基类型.这是什么类型?这是一些 Mono.Cecil 工件还是实际上是 .NET 程序集的真实部分的东西?它扮演什么角色? 解决方案 类型是不适合 CLI 模型的声明的占位符.通常只与混合模式的程序集相关,其中包含用托管语言 ..
发布时间:2021-11-26 12:11:17 C#/.NET

什么是“<模块>"?类型?

我正在使用 Mono.Cecil 读取由 Regex.CompileToAssembly() 生成的程序集.当我遍历类型时,在名为 的根命名空间中有一种类型.该类型没有基类型.这是什么类型?这是一些 Mono.Cecil 工件还是实际上是 .NET 程序集的真实部分的东西?它扮演什么角色? 解决方案 类型是不适合 CLI 模型的声明的占位符.通常只与混合模式的程序集相关,其中包含用托管语言 ..
发布时间:2021-11-24 11:31:02 C#/.NET

预处理 C# - 检测方法

我需要能够预处理大量 C# 文件作为项目的预构建步骤,检测方法的开始,并在方法的开始处插入生成的代码,在任何现有代码之前.但是,我在检测方法的打开时遇到问题.我最初尝试使用正则表达式进行匹配,但最终出现了太多误报. 我会使用反射,但 MethodInfo 类没有引用原始源中的点. 编辑:我在这里真正想做的是支持方法的前置条件,前置条件代码由方法的属性确定.我最初的想法是我可以寻找方法的 ..
发布时间:2021-11-11 04:38:23 C#/.NET

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

我正在使用 Mono.Cecil 编写一个简单的实用程序,用于在 .NET 程序集中查找类型/方法的使用情况(例如,在枚举上调用 ToString). 我能够找到该方法,但是向用户显示源/行信息会很酷.Mono.Cecil 可以做到这一点吗? 解决方案 这是可能的.首先,您应该阅读 Mono.Cecil wiki 中关于调试符号的指南. 确保在 Mono.Cecil.dll 附 ..
发布时间:2021-09-03 18:49:10 C#/.NET

我可以从 MethodDefinition (Cecil) 获取 MethodInfo 吗?

我想使用 MethodInfo,有没有办法将 Cecil 的 MethodDefinition 转换为 MethodInfo? 解决方案 不是 - 这两种结构虽然内容相似,但几乎没有任何关系. 引用 Google 上的此主题组: Cecil 不适用于 CLR 的反射 API;它有自己的内部模型,它自己加载所有程序集,绕过CLR的加载机制. 该线程提供了一些关于如何绕过这一 ..
发布时间:2021-07-06 18:47:36 C#/.NET

检测程序集所需的 Silverlight 版本

我如何判断 Silverlight 2 是否足以进行程序集或需要 Silverlight 3? 我拥有通过反射获得的所有信息 (Mono.Cecil). SL 3 与 4 的相同问题. 提前致谢. 解决方案 这可能正是您要找的: Assembly asm = Assembly.GetExecutingAssembly();string[] 部分 = asm.FullName ..
发布时间:2021-07-06 18:43:06 其他开发

Mono.Cecil - 如何获取方法体的简单示例

我一直在寻找一个新手问题,但找不到一个简单的例子.谁能给我一个简单的例子,如何将 MethodBody 放入最可用的字符串结果中?喜欢: 使用 Mono.Cecil;使用 Mono.Cecil.Cil;命名空间我的{公共课主要{公共主(){//伪代码,但不起作用Console.Write( getMethod("HelloWorld").GetMethodBody().ToString());} ..
发布时间:2021-07-06 18:42:29 C#/.NET

成员在另一个模块中声明,需要导入

我使用Mono.Cecil创建新的自定义属性类型,然后将其添加到现有类型中。 为了演示它,我有一个预先存在的DLL。类型为“ SampleType”的“ Sample”。 我想使用Mono.Cecil在“样本”中创建一个名为“ NewAttribute”的新类型,然后将此属性添加到“ SampleType”中。 代码看起来像这样:(不完全是,但是例如它足够好) 静态无效Ad ..
发布时间:2020-10-01 20:25:36 C#/.NET

是否有通用CIL代码将任何类型实例转换为字符串?

是否可以编写将任何类型(值和引用)的实例转换为System.String的通用CIL指令? 特别是我对Mono.Cecil代码感兴趣,该代码会将这些指令注入到方法中。 分析我想到的这些Mono的通用方法.Cecil调用: (应该将第i个方法参数转换为字符串) System.Reflection。 MethodInfo to_string_method_info = typeof( ..
发布时间:2020-10-01 20:22:18 C#/.NET

.NET CIL操作评估堆栈

我有此序列的CIL代码,这些代码是通过 Mono.Cecil 注入的。但是,修改后的.NET C#应用程序将无法运行。 目标: 从堆栈中手动加载和弹出值以在 Console.WriteLine for(int i = 0; i ..
发布时间:2020-10-01 20:22:16 C#/.NET

使用Mono.Cecil替换对类型/名称空间的引用

背景(不必要,容易混淆,仅出于好奇) 我使用的是Unity 3D for Mobile的免费版本,它不允许我使用移动设备上的 System.Net.Sockets 命名空间。问题是我正在使用引用 System.Net.Sockets .dll 库(即IKVM)。 c>。我实际上并未在IKVM中使用引用 System.Net.Sockets 的类,因此我制作了一个存根库,而不是购买$ 3000 ..
发布时间:2020-10-01 20:17:04 C#/.NET

如何检测异步方法主体中的源代码更改

我试图在运行时检测类方法的源代码是否已更改.基本上,我检索方法主体(IL),使用md5对其进行哈希处理并将其存储在数据库中.下次我检查方法时,可以比较哈希值. public class Changed { public string SomeValue { get; set; } public string GetSomeValue() { retu ..
发布时间:2020-09-13 05:55:01 C#/.NET

什么是“<模块>”?类型?

我正在使用Mono.Cecil读取 Regex.CompileToAssembly()生成的程序集。当我遍历这些类型时,根名称空间中有一种名为 的类型。该类型没有基本类型。这是什么类型这是某些Mono.Cecil工件还是实际上是.NET程序集的一部分? 解决方案 类型是不适合CLI模型的声明的占位符。通常仅在混合模式的程序集中相关,既包含以托管语言编写 ..
发布时间:2020-05-30 22:08:38 C#/.NET

如何使用Mono.Cecil创建HelloWorld.exe

如何使用Mono.Cecil从头开始创建简单的程序?到目前为止,我已经找到了所有示例和教程,假定您正在使用现有的程序集,正在阅读或进行小的更改。 解决方案 请参见以下代码以开始使用: var myHelloWorldApp = AssemblyDefinition.CreateAssembly( new AssemblyNameDefinition(“ H​​elloWorld” ..
发布时间:2020-05-30 20:08:45 C#/.NET

如何删除所有DebuggerHiddenAttribute

仅当编译器生成此属性时,如何才能从程序集中删除所有DebuggerHiddenAttribute? 我正在尝试此代码,但是它不起作用. ModuleDefinition module = ...; MethodDefinition targetMethod = ...; MethodReference attributeConstructor = module.Import( ..
发布时间:2020-05-11 22:47:41 C#/.NET

无法使用Mono Cecil设置类型的基类

我正在尝试使用Mono Cecil来操纵DLL.我要做的是将某些类的基本类型从mscorlib.dll设置为System.MarshalByRefObject.我正在使用以下代码. var assembly = AssemblyDefinition.ReadAssembly(inputtarget); var types = assembly.MainModule.Types; var my ..
发布时间:2020-05-11 22:47:39 C#/.NET