Propertyinfo 获取值非静态值需要目标
Propertyinfo get value non static value requires target
我试图从我的属性中反映一些数据,但我很难弄清楚为什么我会收到错误 "non static value requires target" 我曾尝试将值传递给 getvalue 但没有成功。如果我单步执行代码,属性就在那里,不明白为什么 get vlue 会抛出错误。
foreach (KeyValuePair<string, object> argument in actionArguments)
{
Type type = argument.Value.GetType() as Type;
PropertyInfo[] properties = type.GetProperties();
Parallel.ForEach(properties, property =>
{
if (property.PropertyType == typeof(string))
{
string text = property.GetValue(null, null) as string; -- error
string[] words = text.Split(' ');
}
});
}
因为没有实例就没有实例属性。因此,如果不提供 instance.If 就无法获得实例的值 属性 您正在寻找 static
属性使用 BindingFlags.Static
和 GetProperties
.
如果你有一个实例,你需要将它传递给 GetValue
方法而不是 null:
string text = property.GetValue(argument.Value) as string;
我试图从我的属性中反映一些数据,但我很难弄清楚为什么我会收到错误 "non static value requires target" 我曾尝试将值传递给 getvalue 但没有成功。如果我单步执行代码,属性就在那里,不明白为什么 get vlue 会抛出错误。
foreach (KeyValuePair<string, object> argument in actionArguments)
{
Type type = argument.Value.GetType() as Type;
PropertyInfo[] properties = type.GetProperties();
Parallel.ForEach(properties, property =>
{
if (property.PropertyType == typeof(string))
{
string text = property.GetValue(null, null) as string; -- error
string[] words = text.Split(' ');
}
});
}
因为没有实例就没有实例属性。因此,如果不提供 instance.If 就无法获得实例的值 属性 您正在寻找 static
属性使用 BindingFlags.Static
和 GetProperties
.
如果你有一个实例,你需要将它传递给 GetValue
方法而不是 null:
string text = property.GetValue(argument.Value) as string;