我一直在寻找一段时间 - 我找不到有效的答案....
我只是想使用反射找出类中变量或属性的类型......
foreach (XElement items in nodes)
{
Game newGame = new Game();
FieldInfo[] fields = newGame.GetType().GetFields(BindingFlags.Instance |
BindingFlags.Static |
BindingFlags.NonPublic |
BindingFlags.Public);
foreach(XAttribute item in items.Attributes())
{
foreach (FieldInfo f in fields)
{
if (f.Name.Remove(0,1) == item.Name.LocalName)
{
if (GetTypeOrUnderlyingType(f) == typeof(Int32))
{
Type type = typeof(Int32).DeclaringType;
f.SetValue(newGame, Convert.ChangeType(item.Value, type));
}
}
}
}
}
public Type GetTypeOrUnderlyingType(object o)
{
Type type = o.GetType();
if (!type.IsGenericType) { return type; }
return type.GetGenericArguments()[0];
}
Game 是通过 linq 生成的类...我只想获取字段的类型,所以我知道是否需要转换我的 xml item.value ....