1

このように C# のメソッドに属性を追加できることは知っていますが、

例1。

[HttpPost]
public void Method()
{
//code
}

つまり、実行するには属性が満たされている必要がありますMethod()

そして、私はあなたがこのように属性を積み重ねることができることを知っています.

例2。

[HttpPost]
[RequireHttps]
public void Method2()
{
 //More code
}

を使用する前に、attribute1 'AND' attribute2 の両方が満たされていることを確認しますMethod2()

しかし、属性を「OR」できますか? もしかしてこういうこと?

例3。

[HttpPost || RequireHttps]
public void Method3()
{
  //Even more code
}

したがって、いずれかの属性が満たされている場合は、 を使用できますMethod3()

編集:申し訳ありませんが、注釈と呼ばれるインプレッション属性の下にありました。それを修正しました。

4

2 に答える 2

6

Method() を実行するには、アノテーションが満たされている必要があります。

それは誤解です。

属性はディレクティブです。[HttpPost]このメソッドは Post リクエストにのみ一致します。セキュリティチェックのような「要求」ではありません。一部の属性のみがそのように機能します。

しかし、それらを「要件」と見なすと、独立して動作するため、常にAND動作になります。

于 2012-04-18T14:46:54.003 に答える
1

C# では、それらは注釈ではなく属性と呼ばれます。
既定では、属性は、クラス、メソッド、プロパティなどを装飾する以外には使用されません。ただし、ASP.NET MVC が と を使用するのと同じように、リフレクションを介して、好きなように属性を使用できHttpPostますRequireHttps

残念ながら、それらを OR することはできません。

于 2012-04-18T14:52:01.463 に答える