我在将 WP7 应用程序移植到 win8 商店应用程序时遇到问题...
我运行此代码从 XML 文件中的元素填充字段:
Venue lv = new Venue();
foreach (var t in Fields)
{
foreach (var f in t.Elements())
{
lv.SaveData(f.Attribute("name").Value, f.Value, lv);
}
}
数据类:
public class Venue //: INotifyPropertyChanged
{
public string updated_at { get; set; }
public string name { get; set; }
public string authority { get; set; }
public string organisation { get; set; }
public string control_type { get; set; }
}
运行 SaveData 方法:
public void SaveData(string field, string value, Venue v)
{
foreach (MemberInfo mi in v.GetType().GetTypeInfo().GetMembers())
{
if (mi.MemberType == MemberTypes.Property)
{
PropertyInfo pi = mi as PropertyInfo;
if (pi.Name == "Coordinate")
continue;
if (pi.Name == field)
{
pi.SetValue(v, value, null);
}
}
}
}
问题是,GetMembers 定义在 WinRT 中不存在,因此要么需要找到替代方案来公开相同的属性,要么必须找到重写系统的方法。
这段代码不是我自己写的,但我可以理解它在做什么。我对反思不太熟悉,除了我刚刚阅读的基本介绍任何快速修复