2015-02-10 1 views
0

Im пытается отразить некоторые данные из моих свойств, и им трудно найти, почему im получает ошибку «не статическое значение требует цели». Я попытался передать значения в getvalue с нет успеха. если я пройду через код, свойства там, не понимаю, почему get vlue бросает ошибку.Propertyinfo получить значение не статическое значение требует целевой

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(' '); 
     } 
    }); 
} 

ответ

3

Поскольку свойство экземпляра не существует без экземпляра. Таким образом, невозможно получить значение свойства экземпляра без предоставления экземпляра. Если вы ищете static, используйте BindingFlags.Static с GetProperties.

Если у вас есть экземпляр вам нужно передать его GetValue методы вместо нуля:

string text = property.GetValue(argument.Value) as string; 
+0

у меня есть экземпляр в аргументе –

+0

да !! Я буквально понял, что, когда вы упомянули об этом, спасибо –

+0

, что здесь аргумент? –