के पढ़ने/लिखने के गुण प्राप्त करें मुझे किसी अज्ञात प्रकार के सभी गुणों को लाने की आवश्यकता है जिसे लिखा जा सकता है।बेनामी टाइप
जैसे:
var person = new {Name = "Person's Name", Age = 25};
Type anonymousType = person.GetType();
var properties = anonymousType.GetProperties(BindingFlags.Public | BindingFlags.Instance);
समस्या यह है कि सभी गुण उनके CanWrite
संपत्ति false
है। यह गैर अनाम प्रकारों के लिए सच के रूप में वापस आ गया है।
मैंने PropertyInfo.GetSetMethod()
पर कॉल करने का भी प्रयास किया है जो null
देता है।
मैं कैसे जांच सकता हूं कि संपत्ति को लिखा जा सकता है या नहीं?
संपादित करें: शायद यह जानना पर्याप्त होगा कि कोई प्रकार गुमनाम है या नहीं। प्रतिबिंब का उपयोग करके एक प्रकार अज्ञात है या नहीं, तो मैं कैसे पता लगा सकता हूं?
हाय, "हमेशा नहीं है"? क्या आप उस पर थोड़ा सा विस्तार कर सकते हैं। इसके अलावा मैं भी एक सेट विधि उत्पन्न होने की उम्मीद कर रहा था। क्या संकलक केवल एक सेटटर उत्पन्न करने के लिए पर्याप्त है अगर इसका उपयोग किया जाता है? - धन्यवाद। –
क्या यह जानना संभव है कि प्रतिबिंब का उपयोग कर एक प्रकार अज्ञात है या नहीं? –
आप * सी # द्वारा उत्पन्न अज्ञात प्रकार के साथ एक सेटटर का उपयोग नहीं कर सकते - जैसा कि मैंने कहा है, यह हमेशा अपरिवर्तनीय है। नामित प्रकारों के लिए, उदाहरण के लिए दिखाए गए अनुसार, आपके पास एक सेटटर है या नहीं, घोषणा पर निर्भर करेगा। यह पता लगाने के लिए कि कंपाइलर द्वारा एक प्रकार का निर्माण किया गया था, उस जगह के बारे में एक और SO सवाल है। मैं इसे खोजने की कोशिश करूंगा। –