KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
The problem I am trying to solve is how to write a method which takes in a property name as a string, and returns the value assigned to said property. My model class is declared similar to: public class Foo { public int FooId public int param1 public double param2 } and from within my method I wish to do something similar to this var property = GetProperty("param1) var property2 = GetProperty("param2") I am currently trying to do this by using Expressions such as public dynamic GetProperty(string _propertyName) { var currentVariables = m_context.Foo.OrderByDescending(x => x.FooId).FirstOrDefault(); var parameter = Expression.Parameter(typeof(Foo), "Foo"); var property = Expression.Property(parameter, _propertyName); var lambda = Expression.Lambda<Func<GlobalVariableSet, bool>>(parameter); } Is this approach correct, and if so, is it possible to return this as a dynamic type? Answers were correct, was making this far too complex. Solution is now: public dynamic GetProperty(string _propertyName) { var currentVariables = m_context.Foo.OrderByDescending(g => g.FooId).FirstOrDefault(); return currentVariables.GetType().GetProperty(_propertyName).GetValue(currentVariables, null); }
Tags (comma-separated)
Save Edits
Cancel