¿Hay alguna manera de obtener str1
en el código?Cómo obtener el valor del atributo para un conjunto en Cecil
[MyAttribute("str1")]
class X {}
La instancia de Mono.Cecil.CustomAttribute.Fields
está vacía.
¿Hay alguna manera de obtener str1
en el código?Cómo obtener el valor del atributo para un conjunto en Cecil
[MyAttribute("str1")]
class X {}
La instancia de Mono.Cecil.CustomAttribute.Fields
está vacía.
Cuando se utilizan atributos en .NET, se utilizan los parámetros del constructor y se establecen algunos campos (con nombre). Esto se codifica de manera diferente en los metadatos y termina por separado en Cecil.
la instancia de Mono.Cecil.CustomAttribute.Fields está vacía
Lo que estás utilizando está buscando campos cuando se utilizaron los argumentos del constructor para el atributo personalizado. Lo que está buscando es:
type.CustomAttributes[0].ConstructorArguments[0].Value
I second this magnificent answer. –