7
düşünün:Nasıl bir dönüş değeri uygulanan bir özelliğin yansıtmak mı?
Eğer NotNullAttribute nitelik yöntemin dönüş değeri uygulanmış olduğunu görecekti nasıl using System.Reflection,[AttributeUsage(AttributeTargets.Parameter | AttributeTargets.ReturnValue)]
public class NotNullAttribute : Attribute
{
}
public class Class1
{
[return: NotNull]
public static string TestMethod([NotNull] string arg)
{
return arg + " + " + arg;
}
}
? Yapamazsanız, [dönüş:] sözdiziminin ardındaki amaç nedir?
Gah. Cevabınız PostSharp'ın MethodBase kullandığını fark etti ve bu yüzden uygun değildi. Teşekkürler. Eğer (Ben bunu yaparken değil yukarıda benim basitleştirilmiş test durumu rağmen idi) bir SALT OKUNUR bağlamda içine meclisleri yüklüyorsanız – Amy
BTW, bu çözüm aslında çalışmaz. Bunun yerine, kullanmak zorunda: CustomAttributeData.GetCustomAttribute (methodInfo.ReturnParameter) –
de vardır 'mi.ReturnParameter.GetCustomAttributes' vb @Amy, onlar bulunmayan sebebi' MethodBase' kurucular izin vermez gibi görünüyor "non-yapıcı yöntemleri" yaparken (bunlar özellikler/indeksleyiciler/olaylar, C# operatörler için C# yöntemleri, C# erişimcilere vardır), dönüş türleri. 'Void' döndüren yöntemler de dönüş değerlerinde özel niteliklere sahip olabilir! –