动态选择c#中的Ienumerable属性

时间:2015-11-04 22:08:03

标签: c# .net ienumerable

我正在尝试执行以下断言

Assert.AreEqual<string>(A.Drivers[i].FirstName, Response);

驱动程序是 IEnumerable 集合,它还有其他属性,如姓氏,中间名等。我想动态选择驱动程序的属性,以便可以在一个方法中完成,而不是为每个属性编写不同的方法

2 个答案:

答案 0 :(得分:1)

你可以使用反思来做到这一点:

获取Drivers类的字符串属性

var driverProperties = typeof(Drivers).GetProperties().Where(i => i.PropertyType.Equals(typeof(string)));

然后遍历属性

foreach (var property in driverProperties)
        {
            Assert.AreEqual<string>(property.GetValue(A.Drivers[i]), Response);
        }

答案 1 :(得分:0)

对达诺的建议略有改变。获得一个特定的财产

var prop = typeof(Drivers).GetProperty("propName");
var val = (string)prop.GetValue(A.Drivers[i]);