1

我知道您可以像这样向 C# 中的方法添加属性,

例 1。

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

这意味着必须满足该属性才能运行Method()

我知道你可以像这样堆叠属性,

例 2。

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

在您可以使用Method2().

但是你能“或”属性吗?可能是这样的?

例 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 对HttpPostand所做的那样RequireHttps

不幸的是,它们不能被 OR'ed。

于 2012-04-18T14:52:01.463 回答