ASP.NET MVC/ c# -类型转换到自定义所需验证属性中的数组

本文关键字:验证 属性 数组 自定义 MVC NET 类型转换 ASP | 更新日期: 2023-09-27 18:06:24

我试图创建一个自定义所需的验证属性,该属性将能够接受任何大小的1d数组,并验证至少一个元素不是null/空字符串。我有一些麻烦弄清楚如何把传入的通用对象变成一个数组。以下是目前为止的内容:

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[],但我希望保持属性尽可能通用,以便将来在其他项目中使用。对如何继续有什么想法吗?

编辑:

我基本上需要这样做:

foreach (var item in (valueType[])value)
{
    // ...
}

但我不确定如何/如果它是可能的动态转换到数组,

ASP.NET MVC/ c# -类型转换到自定义所需验证属性中的数组

我认为你需要:循环的一般处理:检查下面的答案

c#语法- Lambda表达式示例- ForEach() over泛型列表

扮演T:

你可以创建单独的类来表示T

如:公共类Foo{公共字符串Boo{get;set;}}

和之后你把它放入List List = new List()等:)