C# 从实例化表单的FieldInfo对象检索属性

C# 从实例化表单的FieldInfo对象检索属性,c#,C#,我试图从一个来自动态实例化表单的公共DTO对象获取属性 Form equipmentDialog = (Form)Activator.CreateInstance(_lookups.First(d => d.Key == lvwEquipmentCategories.FocusedItem.Text).Dialog, (object)null); if (equipmentDialog.ShowDialog() == DialogResult.OK) { FieldInfo eq

我试图从一个来自动态实例化表单的公共DTO对象获取属性

Form equipmentDialog = (Form)Activator.CreateInstance(_lookups.First(d => d.Key == lvwEquipmentCategories.FocusedItem.Text).Dialog, (object)null);

if (equipmentDialog.ShowDialog() == DialogResult.OK)
{
    FieldInfo equipmentField = equipmentDialog.GetType().GetFields().First(); //Equipment (DtoEquipment) - there is only one.
    List<PropertyInfo> equipmentProperties = equipmentField.GetType().GetProperties().ToList();
}
这并没有给我想要的属性。它只是给了我一些属性,比如IsPublic、IsPrivate等等

我想要的结果是这样的:

DtoEquipment test = new DtoEquipment();
List<PropertyInfo> testProperties = test.GetType().GetProperties().ToList();
这将为我提供DTO对象的属性。 但我显然需要从实例化表单上的DTO对象获取这些属性

我已经尝试将FieldInfo转换为DTO,但这不起作用。

这应该会起作用。使用FieldInfo.FieldType获取字段的类型

if (equipmentDialog.ShowDialog() == DialogResult.OK)
{
    FieldInfo equipmentField = equipmentDialog.GetType().GetFields().First();
    List<PropertyInfo> equipmentProperties = equipmentField.FieldType.GetProperties().ToList();
}

如何获取这些属性的值?itemDetails[2]=equipmentProperties.Firstep=>ep.Name==Manufacturer.GetValueequipmentField,null.ToString;不起作用。你需要打电话给@afm不起作用是没有帮助的,发布一个新的问题,说明当你尝试时会发生什么。您可能会得到快速的答案。可以,但必须等待90分钟:/