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])
}
我有一个主要的 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])
}