是否有可能通过反射获得完整的“路径”?
示例假设我有以下类/属性。
public class Member
{
public string Name;
public Address Address;
}
public class Address
{
public string Line1;
public string Line2;
public string Line3;
}
Run Code Online (Sandbox Code Playgroud)
想象一下,我有一个名为m. 是否可以通过反射获得完整路径为“Member.Address.Line1”(作为字符串),只是通过某种方式传递m.Address.Line1?
如果您愿意使用,Expression<Func<T>>那么是的,它应该很简单。
只是做这样的事情:
public string GetFullPath<T>(Expression<Func<T>> action) {
return action.Body.ToString();
}
var fullPath = GetFullPath(() => m.Address.Line1);
Run Code Online (Sandbox Code Playgroud)
这不会给你你想要的东西,但它会非常接近,你可以删除你不想要的部分。
我将在该对象中多挖一点,看看是否有一种更简洁的方法可以让您更接近您想要的东西。