System.Reflection.TargetException 错误

System.Reflection.TargetException error

我有一个主要的 class,我在其中循环遍历防滑钉 class 属性 中的每个内部 属性。我的 cleats class 中的每个内部 属性 都是 BeltProperty 类型(另一个 class 包含值和 id 等信息)。

private ObservableCollection<Cleats> _Cleats = new ObservableCollection<Cleats>();
    /// <summary>
    /// Cleats
    /// </summary>
    public ObservableCollection<Cleats> Cleats { get { return _Cleats; } }

foreach (PropertyInfo prop in typeof(Cleats)
    .GetProperties(BindingFlags.Instance | BindingFlags.NonPublic))
{
    BeltProperty bp = new BeltProperty();
    bp = (BeltProperty)Cleats[Configurator_2016.Cleats.SelectedConfigurationIndex]
        .GetType().GetProperty(prop.Name, BindingFlags.Instance | BindingFlags.NonPublic)
        .GetValue(this, null);
    //rest of the code...
}

在第一个 BeltProperty 它发现它抛出一个 System.Reflection.TargetException。我想知道是否有 another/better 方法从我的防滑钉 class 中获取 属性。在此先感谢您的帮助或建议。

首先我会为 类 和实例选择更好的名称。
ObservableCollection<Cleats> Cleats 不是直截了当的。

您遇到的问题是因为 .GetValue(this, null);

中的 this 参数

此参数应该是您尝试从中读取 属性 的实例。

整个代码可能如下所示:

foreach (PropertyInfo prop in typeof(Cleats)
    .GetProperties(BindingFlags.Instance | BindingFlags.NonPublic))
{
    var bp = (BeltProperty)prop.GetValue(Cleats[Configurator_2016.Cleats.SelectedConfigurationIndex])
}