क्या ExpressionHelper.GetExpressionText(LambdaExpression)
पर .NET Framework विकल्प है? मुझे उन कुछ परियोजनाओं में इसकी आवश्यकता है जो System.Web.Mvc का संदर्भ नहीं दे सकते हैं।ExpressionHelper.GetExpressionText (LambdaExpression) वैकल्पिक
मैं समझता हूं कि GetExpressionText(LambdaExpression)
विधि के अपने कार्यान्वयन को लिखने की संभावनाओं में से एक है लेकिन मैं इसे नहीं करना चाहता हूं। मेरा लक्ष्य पहले से ही मौजूदा .NET Framework कोड का पुन: उपयोग करना है।
string GetPropertyName(LambdaExpression expression)
{
var body = (MemberExpression)expression.Body;
return body.Member.Name;
}
यदि पारित में लैम्ब्डा नहीं MemberExpression
है, यह एक अपवाद फेंक देते हैं (हालांकि आप एक अधिक वर्णनात्मक अपवाद चाहते हो सकता है):
वास्तव में क्या आप की जरूरत है? क्या आप उस विधि का संदर्भ दिए बिना इसका वर्णन कर सकते हैं? – svick
यह विधि लैम्बडा अभिव्यक्ति में निर्दिष्ट संपत्ति का नाम देती है। यदि आप एएसपी.नेट एमवीसी से परिचित हैं तो आपको इसे पहचानना चाहिए: 'HTML .extBoxFor (model => model.ID) '। विधि 'TextBoxFor' संपत्ति का नाम प्राप्त करने के लिए ExpressionHelper का उपयोग कर रहा है (यानी, "आईडी") और इस नाम के साथ नियंत्रण उत्पन्न करता है। मुझे एक ही कार्यक्षमता की आवश्यकता है: "x => x.SomeProperty" अभिव्यक्ति से मुझे परिणामस्वरूप "SomeProperty" प्राप्त करना होगा –
कोई विकल्प मुझे पता नहीं है। FluentNHibernate उदाहरण के लिए यह भी अपना खुद का कार्यान्वित किया। – Firo