मैं एक कस्टम लिखा है विशेषता है कि मैं एक वर्ग के कुछ सदस्यों पर का उपयोग करें:कस्टम विशेषता-सजाए गए संपत्ति से मूल्य प्राप्त करें?
public class Dummy
{
[MyAttribute]
public string Foo { get; set; }
[MyAttribute]
public int Bar { get; set; }
}
मैं कस्टम प्रकार से जिम्मेदार बताते हो और मेरी विशिष्ट विशेषता ढूँढने में सक्षम हूँ। असाइन किए गए गुणों के मूल्य प्राप्त करने के लिए मैं क्या नहीं कर सकता हूं। जब मैं डमी का उदाहरण लेता हूं और अपनी विधि में इसे (ऑब्जेक्ट के रूप में) पास करता हूं, तो मैं प्रॉपर्टीइन्फो ऑब्जेक्ट को कैसे प्राप्त कर सकता हूं, मैं वापस प्राप्त करता हूं। गेटप्रॉपर्टीज() और मूल्यों को सौंपा गया है। फू और बार?
संपादित करें:
मेरे समस्या यह है कि मैं समझ नहीं कैसे ठीक getValue कॉल करने के लिए है।
void TestMethod (object o)
{
Type t = o.GetType();
var props = t.GetProperties();
foreach (var prop in props)
{
var propattr = prop.GetCustomAttributes(false);
object attr = (from row in propattr where row.GetType() == typeof(MyAttribute) select row).First();
if (attr == null)
continue;
MyAttribute myattr = (MyAttribute)attr;
var value = prop.GetValue(prop, null);
}
}
हालांकि, जब मैं यह कर, prop.GetValue कॉल मुझे एक TargetException देता है - वस्तु लक्ष्य प्रकार से मेल नहीं खाता। इस मूल्य को पाने के लिए मैं इस कॉल को कैसे बना सकता हूं?
फर्स्टऑर्डफॉल्ट पर सहमति - यह समस्या का प्रदर्शन करने के लिए ज्यादातर एक मिश्रित उदाहरण है, लेकिन सहायता के लिए धन्यवाद। दुह, विश्वास नहीं कर सकता कि यह था। – Joe