我有一个类,我用以下代码从字符串Name调用方法,其中TalentProfile是我的类,我运行该方法并返回未知对象类型。
public Object RegulatorValue
public Type RegulatorType
BindingFlags bindingFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
List<MemberInfo> members = Common.AttributeHelpers.GetFieldAndPropertyList(this.TalentProfile, bindingFlags);
foreach (MemberInfo member in members.Where(t => t.Name == methodName))
{
this.RegulatorValue = member.GetValue(this.TalentProfile);
this.RegulatorType = this.RegulatorValue.GetType();
this.Regulator = methodName;
}
这是伟大的,如果我带回来的东西像字符串,但我有麻烦,当我带回来一个列表。我有一种特别的方法,它可以带回一个列表。如果我硬编码一个foreach来查找电话号码,它工作得很好。我希望能够在不知道列表是什么类型的情况下遍历列表然后遍历列表中项目的属性并能够对其进行操作
.net中最基本的集合类型是IEnumerable。将值转换为IEnumerable
并迭代它。
IEnumerable enumerable = (IEnumerable)member.GetValue(this.TalentProfile);
if (enumerable != null)
{
IEnumerator enumerator = enumerable.GetEnumerator();
while (enumerator.MoveNext())
{
object obj = enumerator.Current;
// do something with obj
}
}