所以我的问题是:我有一个只由FieldInfo表示的对象实例。我没有其他访问该对象的权限。是否可以仅通过字段信息获取该对象实例?
MyObject myObject = fieldInfo.SomeMethodOrProperty as MyObject;
这只是一个例子,但我认为你可以了解情况。
答案 0 :(得分:7)
答案 1 :(得分:0)
尽管另一个答案说不,但这是可能的。
我有同样的问题,经过一些测试后我发现这个代码可以工作:
Type oType = typeof(MyClass);
FieldInfo[] aoFieldInfo = oType.GetFields (BindingFlags.Public | BindingFlags.Static);
foreach (FieldInfo oFieldInfo in aoFieldInfo)
{
object oValue = oFieldInfo.GetValue (null);
}
并返回所有成员的值/对象,我之前查询过FieldInfo
。
答案 2 :(得分:0)
我知道这很老,但是可以,只要您可以访问所讨论对象的父对象的实例...
例如:
public AxisObject getAxisObjectByName(string name)
{
FieldInfo[] Comboproperties = typeof(DrivesObject).GetFields();
foreach (var property in Comboproperties)
{
if (property.Name == name)
{
return (AxisObject)property.GetValue(PersistantVariables.Instance.Drives);//pass the instance you're wanting to return child object instance from
}
}
return null;
}