كيفية الحصول على قيمة خاصية كائن بواسطة اسمها (سلسلة نصية) عبر التأمل (Reflection) في C#؟
مرحباً بالجميع! أنا مبتدئ في C# وواجهت مهمة: لدي كلاس `Person` مع عدة خصائص (`Name`, `Age`, `Email`). أحتاج إلى كتابة دالة تأخذ كائن من هذا الكلاس وسلسلة نصية — اسم الخاصية، وتعيد قيمة تلك الخاصية. أي مثلاً، أرسل `person` و`"Name"`، وأحصل على `"John"`.
أعلم أنه يمكن فعل ذلك عبر Reflection، لكني لا أفهم كيف بشكل صحيح. إليك ما جربته:
```csharp
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Email { get; set; }
}
static object GetPropertyValue(object obj, string propertyName)
{
// كيف أحصل على القيمة هنا؟
// جربت شيئاً مثل obj.GetType().GetProperty(propertyName)، لكن لا أعرف ماذا بعد.
return null;
}
```
المشكلة أنني لا أفهم كيفية استدعاء getter الخاصية إذا كنت أعرف اسمها فقط كسلسلة نصية. هل يجب مراعاة حالة الأحرف؟ ماذا لو كانت الخاصية تُسمى