Сначала немного контекста:
Я писал многократно используемый метод «нулевого тестера», который будет использоваться для проверки, имеет ли какая-либо переменная объекта нулевое или пустое значение.цель состоит в том, чтобы метод мог принять 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
.
Кто-то знает, почему он это сделал?