mono.cecil相关内容
是否有任何文档或 cecil 源代码的一部分,我可以查阅以全面了解 cecil 将用于给定 CodeOperand 类型> 价值?例如:我可以从 MethodBodyRocks 中收集到 Ldloc 采用 VariableDefinition 类型的 Operand,但我没有能够找到其他一些指令代码. 解决方案 可以查看OpCodes.cs 文件. 例如对于 Ldloc 你会看到 O
..
我下载了最新的 Mono.Cecil,现在每当我启动我的项目时,它都会给我这个错误.如果我删除并添加 mono.cecil,它就会消失.但每次我打开我的项目时,这样做都很痛苦. 解决方案 对于所有想要在内部使用扩展方法并因此声明自己的内部 System.Runtime 的 .NET 2.0 项目来说,这个问题是一个众所周知的问题.CompilerServices.ExtensionAttr
..
我正在使用 Mono.Cecil 读取由 Regex.CompileToAssembly() 生成的程序集.当我遍历类型时,在名为 的根命名空间中有一种类型.该类型没有基类型.这是什么类型?这是一些 Mono.Cecil 工件还是实际上是 .NET 程序集的真实部分的东西?它扮演什么角色? 解决方案 类型是不适合 CLI 模型的声明的占位符.通常只与混合模式的程序集相关,其中包含用托管语言
..
我正在使用 Mono.Cecil 读取由 Regex.CompileToAssembly() 生成的程序集.当我遍历类型时,在名为 的根命名空间中有一种类型.该类型没有基类型.这是什么类型?这是一些 Mono.Cecil 工件还是实际上是 .NET 程序集的真实部分的东西?它扮演什么角色? 解决方案 类型是不适合 CLI 模型的声明的占位符.通常只与混合模式的程序集相关,其中包含用托管语言
..
我需要能够预处理大量 C# 文件作为项目的预构建步骤,检测方法的开始,并在方法的开始处插入生成的代码,在任何现有代码之前.但是,我在检测方法的打开时遇到问题.我最初尝试使用正则表达式进行匹配,但最终出现了太多误报. 我会使用反射,但 MethodInfo 类没有引用原始源中的点. 编辑:我在这里真正想做的是支持方法的前置条件,前置条件代码由方法的属性确定.我最初的想法是我可以寻找方法的
..
我正在使用 Mono.Cecil 编写一个简单的实用程序,用于在 .NET 程序集中查找类型/方法的使用情况(例如,在枚举上调用 ToString). 我能够找到该方法,但是向用户显示源/行信息会很酷.Mono.Cecil 可以做到这一点吗? 解决方案 这是可能的.首先,您应该阅读 Mono.Cecil wiki 中关于调试符号的指南. 确保在 Mono.Cecil.dll 附
..
我想使用 MethodInfo,有没有办法将 Cecil 的 MethodDefinition 转换为 MethodInfo? 解决方案 不是 - 这两种结构虽然内容相似,但几乎没有任何关系. 引用 Google 上的此主题组: Cecil 不适用于 CLR 的反射 API;它有自己的内部模型,它自己加载所有程序集,绕过CLR的加载机制. 该线程提供了一些关于如何绕过这一
..
我如何判断 Silverlight 2 是否足以进行程序集或需要 Silverlight 3? 我拥有通过反射获得的所有信息 (Mono.Cecil). SL 3 与 4 的相同问题. 提前致谢. 解决方案 这可能正是您要找的: Assembly asm = Assembly.GetExecutingAssembly();string[] 部分 = asm.FullName
..
我一直在寻找一个新手问题,但找不到一个简单的例子.谁能给我一个简单的例子,如何将 MethodBody 放入最可用的字符串结果中?喜欢: 使用 Mono.Cecil;使用 Mono.Cecil.Cil;命名空间我的{公共课主要{公共主(){//伪代码,但不起作用Console.Write( getMethod("HelloWorld").GetMethodBody().ToString());}
..
我有以下代码: var paramDeclType = m_semanticModel.GetTypeInfo(paramDecl.Type).Type; paramDeclType.ToString()返回的位置 System.Collections.Generic.Dictionary>
..
我使用Mono.Cecil创建新的自定义属性类型,然后将其添加到现有类型中。 为了演示它,我有一个预先存在的DLL。类型为“ SampleType”的“ Sample”。 我想使用Mono.Cecil在“样本”中创建一个名为“ NewAttribute”的新类型,然后将此属性添加到“ SampleType”中。 代码看起来像这样:(不完全是,但是例如它足够好) 静态无效Ad
..
是否可以编写将任何类型(值和引用)的实例转换为System.String的通用CIL指令? 特别是我对Mono.Cecil代码感兴趣,该代码会将这些指令注入到方法中。 分析我想到的这些Mono的通用方法.Cecil调用: (应该将第i个方法参数转换为字符串) System.Reflection。 MethodInfo to_string_method_info = typeof(
..
我有此序列的CIL代码,这些代码是通过 Mono.Cecil 注入的。但是,修改后的.NET C#应用程序将无法运行。 目标: 从堆栈中手动加载和弹出值以在 Console.WriteLine for(int i = 0; i
..
背景(不必要,容易混淆,仅出于好奇) 我使用的是Unity 3D for Mobile的免费版本,它不允许我使用移动设备上的 System.Net.Sockets 命名空间。问题是我正在使用引用 System.Net.Sockets .dll 库(即IKVM)。 c>。我实际上并未在IKVM中使用引用 System.Net.Sockets 的类,因此我制作了一个存根库,而不是购买$ 3000
..
我试图在运行时检测类方法的源代码是否已更改.基本上,我检索方法主体(IL),使用md5对其进行哈希处理并将其存储在数据库中.下次我检查方法时,可以比较哈希值. public class Changed { public string SomeValue { get; set; } public string GetSomeValue() { retu
..
如何通过名称获取对基类的方法的MethodReference? 我尝试过 type.BaseType.Resolve().Methods; ,如果我将包含基类的dll添加到assemblyresolver中,它将返回方法. 但是,如果我使用 添加通话 MSILWorker.Create(OpCodes.Call, baseMethod); (其中baseMethod是通过解
..
我正在使用Mono.Cecil读取 Regex.CompileToAssembly()生成的程序集。当我遍历这些类型时,根名称空间中有一种名为 的类型。该类型没有基本类型。这是什么类型这是某些Mono.Cecil工件还是实际上是.NET程序集的一部分? 解决方案 类型是不适合CLI模型的声明的占位符。通常仅在混合模式的程序集中相关,既包含以托管语言编写
..
如何使用Mono.Cecil从头开始创建简单的程序?到目前为止,我已经找到了所有示例和教程,假定您正在使用现有的程序集,正在阅读或进行小的更改。 解决方案 请参见以下代码以开始使用: var myHelloWorldApp = AssemblyDefinition.CreateAssembly( new AssemblyNameDefinition(“ HelloWorld”
..
仅当编译器生成此属性时,如何才能从程序集中删除所有DebuggerHiddenAttribute? 我正在尝试此代码,但是它不起作用. ModuleDefinition module = ...; MethodDefinition targetMethod = ...; MethodReference attributeConstructor = module.Import(
..
我正在尝试使用Mono Cecil来操纵DLL.我要做的是将某些类的基本类型从mscorlib.dll设置为System.MarshalByRefObject.我正在使用以下代码. var assembly = AssemblyDefinition.ReadAssembly(inputtarget); var types = assembly.MainModule.Types; var my
..