I am completely lost on this one. I have a piece of code that does what I need when implemented like this:
return filters.Add(m => m.Metadata.RecordId).IsEqua
What about this call:
return filters.Add(m => ReflectionMagic(m, "Metadata.RecordId").IsEqualTo(1);
The method would have this signature:
public object ReflectionMagic(object source, string property);
If that would work, you could do something like this:
var propertyTree = property.Split('.');
foreach(var propertyName in propertyTree)
{
var propInfo = source.GetType().GetProperty(propertyName);
var source = propInfo.GetValue(source, null);
}
return source;
Be aware that any kind of argument and return value checks are missing and are left as an excercise to the reader.