虽然已经发布了很多问题,但似乎没有人帮助我解决我的问题。循环访问泛型类的集合属性
我已经开始了一个新的Generics
/Reflection
冒险,我只是试图让我的头在语法和概念。
我有一个Generic
类与X数量的属性和一个是一个集合,所有工作正常,但我有问题从属性名称提取集合props
的值。
foreach (var property in typeof(T).GetProperties())
{
if (property.Name == "Props")
{
foreach (var item in (IEnumerable)property.GetValue(type, null))
{
var propertyName = "";
var newValue = "";
var oldValue = "";
sbDescription.AppendLine(strDescriptionVals
.Replace("{0}", (item.ToString() == "PropertyName") ? item.ToString() : "" + ", "));
sbAllNotes.AppendLine(strAllNotes
.Replace("{0}", (item.ToString() == "PropertyName") ? item.ToString() : "")
.Replace("{1}", (item.ToString() == "NewValue") ? item.ToString() : "")
.Replace("{2}", (item.ToString() == "OldValue") ? item.ToString() : ""));
}
}
}
正如你可以看到我已经精确定位属性的道具,现在我通过希望环路和属性名拉值。
item.ToString()
只是打印类属性的命名空间,而不是价值
希望你一种民间可以点我在正确的方向?
什么'type'变量? – Sybren
@Sybren它的(T)属性在每个方法调用上几乎相同,这就是为什么它是通用的。 –
这是一个非常“匿名”的功能和类的集合。问题在于仅从“集合属性”中检索值。 –