解决方案
/// <summary>
/// 获取指定对象的指定成员变量
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <param name="name"></param>
/// <returns></returns>
public static T CallPrivatevariables<T>(object obj, string name)
{
//BindingFlags flag = System.Reflection.BindingFlags.IgnoreCase | System.Reflection.BindingFlags.NonPublic;
Type type = obj.GetType();
//var fieldInfos_ = type.GetField(name, flag);
var fieldInfos = (System.Reflection.FieldInfo[])((System.Reflection.TypeInfo)type).DeclaredFields;
FieldInfo fieldInfo_ = null;
foreach (FieldInfo fieldInfo in fieldInfos)
{
if (fieldInfo.Name == name)
{
return (T)fieldInfo.GetValue(obj);
}
}
//FieldInfo fieldInfo = type.GetField(name, flag);
return (T)fieldInfo_.GetValue(obj);
}
通过访问 Type.DeclaredFields 获取所有成员变量