KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
One can enumerate the called method parameter types/information like this: private void SomeMethod(int thisValue, string thatValue) { StackTrace stackTrace = new StackTrace(); foreach (ParameterInfo pInfo in stackTrace.GetFrame(0).GetMethod().GetParameters()) { string name = pInfo.Name; string type = pInfo.GetType().ToString(); } } But is there any way to get the actual object of each parameter? EDIT : My goal is to enumerate all parameters and get their values. Using LinQ Expressions, one can get the parameter value like so: private void SomeMethod(int thisValue, string thatValue) { object valueOfThis = GetParameterValue(() => thisValue); object valueOfThat = GetParameterValue(() => thatValue); } private object GetParameterValue<T>(Expression<Func<T>> expr) { var body = ((MemberExpression)expr.Body); return ((FieldInfo)body.Member).GetValue(((ConstantExpression)body.Expression).Value); } But what I would like to do is something like: foreach (fooObject o in thisMethod.GetParameterObjects()) { object someValue = GetParameterValue(() => fooObject); } And thereby have a generic method for collection all parameters and their values.
Tags (comma-separated)
Save Edits
Cancel