C# 属性或特性

标签 c# asp.net-mvc-3 attributes annotations custom-attributes

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

ex1.

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

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

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

ex2.

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

在使用 Method2() 之前,它会检查 attribute1 'AND' attribute2 是否满足。

但是您可以“或”属性吗?也许是这样的?

ex3.

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

因此,如果满足任一属性,您可以使用 Method3()

编辑:抱歉,印象中的属性称为注释。解决了这个问题。

最佳答案

Which means the annotation must be satisfied to run Method()

这是误会。

[HttpPost]属性是一个指令,这个方法只会匹配一个Post请求。这不是像安全检查那样的“要求”。只有一些属性以这种方式工作。

但当将它们视为“需求”时:它们独立工作,因此始终会导致AND 行为。

关于C# 属性或特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10211895/

相关文章:

c# - 命名管道客户端无法连接到作为网络服务运行的服务器

c# - 如何在 UWP 应用程序中为 StreamSocket.UpgradeToSslAsync 设置超时?

C# - 第二个参数等于字符串长度的字符串 IndexOf 方法

c# - 在 Telerik MVC AJAX 绑定(bind)属性列上使用自定义日期格式化程序

jquery - ASP MVC JsonResult 呈现为页面,而不是通过调用 jQuery 函数捕获

asp.net - 将多个 .net webapp 组合成一个套件

asp.net-mvc-3 - 为什么CreateView中的masterPath参数为空?

c# - 向 ADO.NET 实体数据模型生成的类中的属性添加属性

session - MVC SessionStateAttribute 不能用作全局属性

php - 同时使用 Laravel 强制转换和修改器