2013-02-27 120 views
6

करने के लिए सी # चर का नाम मैं चरस्ट्रिंग

public string MyVariable; 

मैं स्ट्रिंग के रूप में चर के नाम का उपयोग की जरूरत है। उदाहरण:

var a = MyVariable.NameVariable(); 
// a = "MyVariable" 

मैं यह कैसे कर सकता हूं?

मैं अपना मिनीओआरएम बनाना चाहता हूं (एनएचबेर्नेट बहुत भारी है और एक अलग पुस्तकालय की आवश्यकता है)। फिलहाल समस्या यह है कि मुझे स्थिरांक का एक गुच्छा इंगित करना है। उदाहरण के लिए:

public const string FieldIdRules = "idRules" 

और उसके बाद संबंध samonapisannom प्रोफाइलर में लेनदेन करने के लिए। मैंने देखा कि हाइबरनेट को टेक्स्ट मान निर्दिष्ट करने की आवश्यकता नहीं है (फ़ील्ड के अनुपात के लिए)। मैं इसे लागू करना चाहता हूं।

क्षमा करें मेरा बुरा अंग्रेजी

+1

यह स्टैक ओवरफ़्लो जवाब आप मदद कर सकते हैं: http://stackoverflow.com/questions/2566101/how-to-get-variable -name का उपयोग प्रतिबिंब –

+0

http://stackoverflow.com/questions/2566101/how-to-get-variable-name-using-reflection धन्यवाद हारून Blenkush8 – user2071747

उत्तर

2

Hacky दृष्टिकोण, आप Expression के माध्यम से प्राप्त कर सकते हैं:

string myVariable = string.Empty; 
Expression<Func<object>> expression =() => myVariable; 

string name = (expression.Body as MemberExpression).Member.Name; 
+0

और यह संकलन समय अगर में आपको बता देंगे नाम बदल गया है। – leppie

1

आप नाम से एक चर का उपयोग कर सकते हैं, तो आप पहले से ही अपने नाम है, तो टाइप करें "MyVariable"

यदि आपने इसे फिर से सौंप दिया है, तो यह संभव नहीं है। मान कहीं वैरिएबल नामों का इतिहास नहीं रखते हैं।


तो आदेश स्तंभ की मैपिंग के क्षेत्र को संभालने के लिए में, मैं एक Dictionary सुझाव है। प्रतिबिंब एक संभावना है, लेकिन इस तरह के एक साधारण कार्य के लिए अनिवार्य रूप से जटिल है।