का उपयोग कर विधियों पर विशेषताओं तक पहुंचने के नीचे मेरे पास फ़ील्ड से एक्सटेंशन विधि के साथ गुण प्राप्त करने का समाधान है। अब मैं खेतों की बजाय विधियों के साथ एक समान काम करना चाहता हूं।एक्सटेंशन विधि
public static MemberInfo GetMember<T, R>(this T instance, Expression<Func<T, R>> selector)
{
var member = selector.Body as MemberExpression;
return member?.Member;
}
public static T GetAttribute<T>(this MemberInfo meminfo) where T : Attribute
{
return meminfo.GetCustomAttributes(typeof(T)).FirstOrDefault() as T;
}
उपयोग:
var attr = this.GetMember(x => x.AddButtonVisibility).GetAttribute<Test>();
तो मेरे मामले में उपयोग कुछ इस तरह दिखना चाहिए:
var attr = this.GetMethod(x => x.SomeMethod).GetAttribute<Test>();
किसी भी तरह से यह संभव है या मैं कुछ पूरी तरह से अलग करने की कोशिश की क्या ज़रूरत है ?
क्या आपको कोई त्रुटि मिल रही है? यह स्पष्ट नहीं है कि आप क्या पूछ रहे हैं। इसे MethodInfo – Nkosi
@Nkosi पर लागू होना चाहिए, उपरोक्त कोड काम नहीं करता है, लेकिन मैं फ़ील्ड के बजाय विधियों के साथ वही काम करना चाहता हूं। –