C# 如何使用LINQ/反射获取DataRow(未知)对象中特定属性的值?
如何在变量的RowData属性中获取特定行?我正试图获得“身份证”。到目前为止,我尝试的是LINQ或者只是一个常规的foreach循环,但是我只能访问GetType().GetProperties()。通过这些方法,我无法访问“Id”的值 到目前为止,我所尝试的: 我尝试过这样使用反射:C# 如何使用LINQ/反射获取DataRow(未知)对象中特定属性的值?,c#,linq,loops,foreach,properties,C#,Linq,Loops,Foreach,Properties,如何在变量的RowData属性中获取特定行?我正试图获得“身份证”。到目前为止,我尝试的是LINQ或者只是一个常规的foreach循环,但是我只能访问GetType().GetProperties()。通过这些方法,我无法访问“Id”的值 到目前为止,我所尝试的: 我尝试过这样使用反射: public void CommandClickHandler(CommandClickEventArgs<object> args) { TabObj.Select(2); va
public void CommandClickHandler(CommandClickEventArgs<object> args)
{
TabObj.Select(2);
var IdOfModel = args.RowData.GetType().GetProperties().Single(pi => pi.Name == "Id").GetValue(args, null);
}
public void CommandClickHandler(CommandClickEventArgs args args)
{
TabObj.选择(2);
var IdOfModel=args.RowData.GetType().GetProperties().Single(pi=>pi.Name==“Id”).GetValue(args,null);
}
但这给了我一个错误“对象与目标类型不匹配”
希望有人能帮忙
提前谢谢如果你把它拆开,事情就很清楚了。您将错误的参数传递给
PropertyInfo.GetValue(对象,arg[])
,它应该是:
var obj = args.RowData;
var type = obj.GetType();
var IdOfModel = type.GetProperties().Single(pi => pi.Name == "Id").GetValue(obj, null);
或者干脆
dynamic obj = args.RowData;
var IdOfModel = obj.Id;
test.RowData.Id?.test.RowData.Id@romaryzhiy他不能,因为RowData的类型是prolly
object
…这是正确的,如果我使用test.RowData.Id,我会得到以下结果:GetType(),ToString()。GetHashCode()改为使用Grid
使用Grid
,这样你就可以像Roman写的那样使用它(因为那时CommandClickEventArgs
将变成CommandClickEventArgs
,我想,但它应该在文档中说明)我不能这样做,因为页面是动态构建的。必须能够以某种方式访问Id的值,对吗?