TargetParameterCountException при итеративном получении значения из возвратных свойств строки - PullRequest
0 голосов
/ 21 ноября 2018

Сначала немного контекста:

Я писал многократно используемый метод «нулевого тестера», который будет использоваться для проверки, имеет ли какая-либо переменная объекта нулевое или пустое значение.цель состоит в том, чтобы метод мог принять Object и использовать рефлексию для проверки значения каждого свойства.

Все работало, пока я не добавил List<string> в класс, который проверяется.При добавлении List<string> поднял TargetParameterCountException, другие примитивные типы этого не сделали.Единственный раз, когда мне удалось воспроизвести эту ошибку, это когда я передал непосредственно строку.

Мне удалось свести эту проблему к этому фрагменту кода:

string toCheck = "foo";
var elementProperties = toCheck.GetType().GetProperties();
foreach (PropertyInfo property in elementProperties)
{
    var elementValue = property.GetValue(toCheck);
    //Check if "toCheck" is null or empty here
}

elementProperties имеетдва значения

  • An Int32 Length
  • A Char Chars[Int32]

Я понимаю, что первое представляет длину, а второе - содержаниестрока.Но когда код пытается «GetValue()» второе свойство, он поднимает TargetParameterCountException.

Кто-то знает, почему он это сделал?

1 Ответ

0 голосов
/ 21 ноября 2018

, так как я пытался получить доступ к массиву символов, мне нужно было указать индекс, какой символ я хочу получить.используя:

property.GetValue(toCheck, new object[] {index})
...