我有一个类,我从字符串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来寻找phonenumber它很有用。我希望能够浏览列表,而不知道列表的类型是什么,然后浏览列表中项目的属性,并能够做到这一点。
答案 0 :(得分:0)
.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
}
}