4

C# 属性でハードコードされた値を回避する方法がないことを確認するにはどうすればよいでしょうか?

[SomeAttribute(3+1)]
public void Foo(string s)

またはクラスメンバーにアクセスするか、プリコンパイルされていないことをしますか?

Postsharp の再試行メカニズムの優れた例を調べます。システムの外部から再試行回数を構成できるかどうかを確認したいと思います。

4

1 に答える 1

5

属性コンストラクターの引数とプロパティ値は、コンパイルされたコードに焼き付けられます。実行時に決定することはできません。

もちろん、喜んでボールをプレーする属性がある場合は、(たとえば) プロパティのタイプと名前を指定し、実行時にそのプロパティ値をフェッチするように要求できます。(たとえば、これは NUnit が に対して[TestCaseSource]行うことです。)しかし、そうすることを知らない属性でこれを行うことはできません。

于 2012-11-20T09:41:22.640 に答える