29 lines
935 B
C#
29 lines
935 B
C#
using System;
|
|
|
|
namespace Module.ProjectValidator
|
|
{
|
|
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)]
|
|
public sealed class RequiredAttribute : Attribute
|
|
{
|
|
private readonly EValidatorSeverity _severity;
|
|
|
|
public RequiredAttribute()
|
|
{
|
|
_severity = EValidatorSeverity.Error;
|
|
}
|
|
|
|
public RequiredAttribute(EValidatorSeverity severity)
|
|
{
|
|
_severity = severity;
|
|
}
|
|
|
|
public sealed class Validator : IAttributeValidator<RequiredAttribute>
|
|
{
|
|
public ValidatorResult Validate(RequiredAttribute attribute, object value)
|
|
{
|
|
var isValid = value is UnityEngine.Object obj ? obj != null : value != null;
|
|
return isValid ? ValidatorResult.Valid : ValidatorResult.Create(attribute._severity, "Value is Null");
|
|
}
|
|
}
|
|
}
|
|
}
|