C#attributes\avoid硬编码值

use*_*852 4 c# attributes postsharp

只是为了确认没有办法避免c#属性中的硬编码值吗?

[SomeAttribute(3+1)]
public void Foo(string s)
Run Code Online (Sandbox Code Playgroud)

或访问类成员或做任何未预编译的事情?

我现在在postharp中探索重试机制的一个很好的例子 - 并且想看看我是否可以配置系统外部的重试次数

Jon*_*eet 5

属性构造函数参数和属性值被烘焙到已编译的代码中.它们无法在执行时确定.

当然,如果你有一个愿意玩球的属性,你可以给它(比方说)一个类型和一个属性的名称,并要求它在执行时获取该属性值.(例如,这就是NUnit所做的[TestCaseSource].)但是你不能用一个不知道这样做的属性来做这件事.