为什么Validation属性接受构造函数参数不接受变量

Why does Validation attribute accepting constructor parameter does not accept variables

我正在尝试编写以下代码 -

[Range(DateTime.UtcNow.Add(-7).Ticks, DateTime.UtcNow.Add(7).Ticks)]
public DateTime TimeStamp;

编译器报错-属性参数必须是属性参数类型的常量表达式、typeof表达式或数组创建表达式。

错误是自我描述的,没关系。我的问题是 - 不允许表达式/变量/方法调用作为 C# 中任何属性的参数的理由是什么?

因为属性存储为 元数据,它们的值应该在编译时已知,这样它们可以在代码编译后存储并且不会在运行时更改。