Я использую FluentValidation, чтобы выполнить некоторую проверку на стороне сервера с моей программой.Чтобы использовать некоторую пользовательскую проверку, я использую валидатор must
, который позволяет вам передавать предикат и возвращать логическое значение, чтобы проверить, была ли проверка успешной.Проверка, которую я пытаюсь выполнить, включает проверку того, существует ли строка внутри массива.
Однако эти детали в значительной степени не имеют значения, поскольку мне просто нужно иметь возможность передать предикат в метод вместе со второй переменной string[]
.
Ниже приведен мой метод проверки:
public bool StringInArray(Func<string> predicate, string[] testArray)
{
if(testArray.Contains(predicate.Invoke()))
{
return true;
}
return false;
}
И вот где я вызываю этот метод.
RuleFor(p => p.Funder)
.Must(StringInArray(p => p, funderStrings));
funderStrings
- это массив содержимого, которое япроверяю.p.Funder
- это строка, которую я проверяю внутри массива.
Аргумент p => p
неверен, и я получаю ошибку компиляции Delegate 'Func<string>' does not take 1 argument
.Я не уверен, как мне передать строку в метод StringInArray
.