public static void Main()
int x = Program.MethodName(400);
[AttributeValidator (nameof(param))]
static int MethodName (int param)
Validator.ValidateMethodParameter(param, nameof(param));
[AttributeUsage(AttributeTargets.Method, Inherited = true)]
public class AttributeValidator : Attribute
public string ParameterName { get; private set; }
public AttributeValidator(string parameterName)
ParameterName = parameterName;
public class ParameterValidationException : Exception
public ParameterValidationException(string message) : base(message) { }
public static void ValidateMethodParameter(int paramValue, string paramName)
if (paramValue < 0 || paramValue > 400)
throw new ParameterValidationException($"Parameter {paramName} is out of range. Must be between 0 and 400.");