में प्रतिबिंब मैं एक कक्षा का परीक्षण कर रहा हूं जिसमें इसके अंदर 2 निजी सदस्य चर हैं। मैंने एक कक्षा बनाई है जो कक्षा में विरासत में है जो मैं परीक्षण कर रहा हूं।विंडोज 8 ऐप
पहले मैंने केवल वेरिएबल्स बनाए जिन्हें मैं protected
तक पहुंचना चाहता था, लेकिन मैंने सोचा कि यह अच्छा होगा अगर मैं उन्हें निजी रख सकूं और उन्हें एक्सेस करने के लिए प्रतिबिंब का उपयोग कर सकूं। मैंने गुगल किया और विभिन्न लेख पाए गए (& यहां पूछे गए प्रश्न (http://stackoverflow.com/questions/4097682/c-sharp-use-reflection-to-get-a-private-member-variable-from-a-derived -class)) और स्वीकृत उत्तर काम नहीं किया।
अतः जुड़ा हुआ सवाल ने कहा:
// _commandCollection is an instance, private member
BindingFlags flags = BindingFlags.Instance | BindingFlags.NonPublic;
// Retrieve a FieldInfo instance corresponding to the field
FieldInfo field = GetType().GetField("_commandCollection", flags);
// Retrieve the value of the field, and cast as necessary
IDbCommand[] cc =(IDbCommand[])field.GetValue(this);
हालांकि, वहाँ है कोई GetField()
विधि। मैंने एक विधि की कोशिश की जो GetRuntimeField()
जैसा दिखता था लेकिन यह काम नहीं करता था।
मेरे (इनहेरीट कक्षा में) कोड है:
public List<BaseData> RealAllData
{
get
{
// Use reflection to access the private variable
FieldInfo field = GetType().GetRuntimeField("mAllData");
return (List<BaseData>)field.GetValue(this);
}
}
किसी को भी जानता है क्यों यह तो काम नहीं करता है मैं आभारी होंगे। धन्यवाद।
क्या यह क्षेत्र है [विंडोज स्टोर ऐप्स के लिए .NET Framework में प्रतिबिंब] (http://msdn.microsoft.com/ en-us/library/hh535795.aspx) सब कुछ है, या यह कुछ अलग है? – AakashM
हाँ, उन लेखों ने मुझे शुरू करने में मदद की। धन्यवाद – Luke