Я пытаюсь создать пользовательский обязательный атрибут проверки, который сможет принять массив 1d любого размера и убедиться, что хотя бы один элемент не является пустой или пустой строкой. У меня возникли проблемы с выяснением, как превратить входящий универсальный объект в массив. Вот что у меня есть:
public class RequiredArrayAttribute : RequiredAttribute
{
public override bool IsValid(object value)
{
var valueType = value.GetType();
if (!valueType.IsArray)
{
return false;
}
bool hasValue = false;
foreach (var item in value)
{
/* if (item != null/empty)
* {
* hasValue = true;
* }
*/
}
return hasValue;
}
}
Хотя мой конкретный вариант использования в этом случае будет касаться string[]
, я хотел бы сохранить атрибут как можно более универсальным для будущего использования в других проектах. Есть идеи, как поступить?
EDIT:
Мне нужно сделать что-то вроде:
foreach (var item in (valueType[])value)
{
// ...
}
Но я не уверен, как / если возможно динамически привести к массиву, подобному этому.