property net example custom attributetargets attribute asp c# reflection attributes postsharp

c# - net - ¿Cómo se refleja en un atributo aplicado a un valor de retorno?



reflection c# example (1)

Considera lo siguiente:

[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.ReturnValue)] public class NotNullAttribute : Attribute { } public class Class1 { [return: NotNull] public static string TestMethod([NotNull] string arg) { return arg + " + " + arg; } }

¿Cómo, utilizando System.Reflection, vería que el atributo NotNullAttribute se ha aplicado al valor de retorno del método? Si no puede, ¿cuál es el propósito detrás de la sintaxis [return:]?


MethodInfo tiene una propiedad ReturnTypeCustomAttributes. Si llama a GetCustomAttributes (), obtendrá los valores devueltos.

MethodInfo mi = typeof(Class1).GetMethod("TestMethod"); object[] attrs = mi.ReturnTypeCustomAttributes.GetCustomAttributes(true);