मैं प्रतिबिंब का उपयोग करने की कोशिश कर रहा हूं यह जांचने के लिए कि किसी दिए गए वर्ग के गुणों को केवल पढ़ने योग्य विशेषता सेट है या नहीं। कक्षाएं मैं उपयोग कर रहा हूँ मेटाडाटा के लिए एक आंशिक "साथी" वर्ग का उपयोग कर MVC देखें मॉडल हैं (।सी # बडी क्लासेस/मेटा डेटा और प्रतिबिंब
public partial class AccountViewModel
{
public virtual Int32 ID { get; set; }
public virtual decimal Balance { get; set; }
}
[MetadataType(typeof(AccountViewModelMetaData))]
public partial class AccountViewModel
{
class AccountViewModelMetaData
{
[DisplayName("ID")]
public virtual Int32 ID { get; set; }
[DisplayName("Balance")]
[DataType(DataType.Currency)]
[ReadOnly(true)]
public virtual decimal Balance { get; set; }
}
}
मैं अगर "शेष" ReadOnly संपत्ति की जांच करना चाहते हैं। अगर मैं संतुलन पर ReadOnly विशेषता निर्धारित AccountViewModel की संपत्ति, मैं इसे इस तरह से प्राप्त कर सकते हैं:।?
Type t = typeof(AccountViewModel);
PropertyInfo pi = t.GetProperty("Balance");
bool isReadOnly = ReadOnlyAttribute.IsDefined(pi,typeof(ReadOnlyAttribute);
मैं विशेषता की जानकारी अगर यह मेटा डेटा वर्ग पर है नहीं प्राप्त कर सकते हैं मैं कैसे जांच कर सकते हैं विशेषता मौजूद है मैं मेटा डेटा वर्गों को परिभाषित किया है मेरे सभी दृश्य मॉडल के लिए, और मेटा डेटा कक्षाओं पर विशेषताओं की जांच करने के लिए एक सामान्य तरीका की आवश्यकता है।
कोई सुझाव?
खबरदार आप जाँच कर रहे हैं कि उस गुण मौजूद है और नहीं है कि यह परिभाषित किया गया है है 'सच है '। क्या आपने सोचा है कि क्या होता है यदि संपत्ति परिभाषित की गई है '[ReadOnlyAttribute (false)] '? –
क्षमा करें, लेकिन आपके समाधान को समझ नहीं सका। :( – Rohit