Mono.Cecil能 - 如何获得自定义属性(Mono.Cecil - How to get cu

2019-09-22 07:49发布

我试图用塞西尔检查与给定的方法相关的属性。 这似乎找到它,但使用下面的代码我无法得到它的名字:

AssemblyDefinition assembly = AssemblyFactory.GetAssembly(pathBin);
assembly.MainModule.Types[0].Methods[1].CustomAttributes[0].ToString()

我知道这一定是我设置我的功能,因为当我从DLL中删除它,代码的第二行会变成空的属性。 我想要做的是能够获得属性的名称。 目前的第二行代码将只返回一个“Mono.Cecil.CustomAttribute”。 我猜应该是得到一个属性的名称(类类型)名称的方式,对不对?

谢谢!

Answer 1:

写作时我遇到了麻烦,这个现代艺术博物馆为好。 下面是它使用的代码:

AssemblyDefinition assembly = AssemblyFactory.GetAssembly(pathBin);
assembly.MainModule.Types[0].Methods[1].CustomAttributes[0].Constructor.DeclaringType.ToString()


Answer 2:

一个CustomAttribute是一个实例System.Attribute派生类型,所以ToString()将尽一切笔者决定。

如果你想了解的属性类型,你应该要求他们的类型:

typeInfo.GetCustomAttributes(false)[0].GetType().ToString() ;

我还没有看到这个属性CustomAttributes您使用的,所以我宁愿使用的方法MemberInfo.GetCustomAttributes(bool)我总是使用。



文章来源: Mono.Cecil - How to get custom attributes