मैं प्रतिबिंब के साथ प्रयोग करने की कोशिश कर रहा हूं और मेरे पास एक प्रश्न है।सी # 6.0 और प्रतिबिंब, संपत्ति प्रारंभकर्ताओं का मूल्य प्राप्त करना
चलें कहना वर्ग initilizating बिना मैं एक वर्ग है, और इस वर्ग में मैं एक संपत्ति की ग # 6,0
Class MyClass()
{
public string SomeProperty{ get; set; } = "SomeValue";
}
वहाँ प्रतिबिंब के साथ इस मूल्य मिल रहा है, का कोई तरीका है नई सुविधा के साथ initilized है, ?
मुझे पता है कि मैं यह कर सकता हूं;
var foo= new MyClass();
var value = foo.GetType().GetProperty("SomeProperty").GetValue(foo);
लेकिन मैं जो करना चाहता हूं वह इस तरह से कुछ है;
typeof(MyClass).GetProperty("SomeProperty").GetValue();
मुझे पता है कि मैं मूल्य प्राप्त करने के लिए एक क्षेत्र का उपयोग कर सकता हूं। लेकिन इसे एक संपत्ति होने की जरूरत है।
धन्यवाद।
AFAIK आप तब तक मूल्य नहीं प्राप्त कर सकते जब तक कक्षा को तत्काल नहीं किया जाता है और आवंटित स्मृति और उसके फ़ील्ड प्रारंभ किए जाते हैं। एक क्रॉस चेक के रूप में अब तक के अधिकांश ज्ञात प्रतिबिंब तरीकों में पैरामीटर के रूप में एक उदाहरण/वस्तु है। –
मुझे लगता है कि ऐसा नहीं किया जा सकता है, क्योंकि संपत्ति और वर्ग स्थिर नहीं हैं। संपत्ति तक पहुंचने के लिए आपको एक वैध ऑब्जेक्ट उपलब्ध होना चाहिए (स्मृति में संदर्भ होना)। –
उत्तर राज्यों के रूप में, जब तक क्लास ऑब्जेक्ट प्रारंभ नहीं किया जाता है, तब तक स्मृति में कोई स्ट्रिंग ऑब्जेक्ट नहीं होता है जो इसे निर्दिष्ट मान संग्रहीत करता है। स्ट्रिंग ऑब्जेक्ट और उसके लिए आवंटित मान प्राप्त करने के लिए आपको एक उदाहरण बनाना होगा। – danish