C# 如何通过属性的名称调用属性的方法
我想通过反射调用对象的属性方法。比如说,C# 如何通过属性的名称调用属性的方法,c#,linq,C#,Linq,我想通过反射调用对象的属性方法。比如说, var query = DataContext().SomeTable.Where(u => u.UserID.contains("P"); 我尝试了以下方法,但没有成功: var query = DataContext().SomeTable.Where(u => u.GetType().GetProperty("UserID").Name.contains("P"); 返回null。请提供帮助。您必须获取u的值,然后在其上使用ToSt
var query = DataContext().SomeTable.Where(u => u.UserID.contains("P");
我尝试了以下方法,但没有成功:
var query = DataContext().SomeTable.Where(u => u.GetType().GetProperty("UserID").Name.contains("P");
返回null。请提供帮助。您必须获取u的值,然后在其上使用ToString: 当然,它有一点改进:检查GetValue是否不返回null等
注意:请记住,您可以在某处缓存从u.GetType.GetPropertyUserID获取的PropertyInfo,这样您就不必每次都调用它。您必须获取u的值,然后使用ToString: 当然,它有一点改进:检查GetValue是否不返回null等 注意:请记住,您可以在某处缓存从u.GetType.GetPropertyUserID获得的PropertyInfo,这样您就不必每次都调用它。您需要的,而不是名称 使用here只是为了确保在UserID为null时Contains不会引发异常 你想要的不是名字
使用here只是为了确保在UserID为null时Contains不会引发异常 非常感谢你的回答和建议。非常感谢你的回答和建议。
u.GetType().GetProperty("UserID").GetValue(u, null).ToString().Contains("P");
((string)u.GetType().GetProperty("UserID").GetValue(u) ?? "").Contains("P")