我知道你可以在C#中添加一个属性,比如这个,
EX1。
[HttpPost]
public void Method()
{
//code
}
这意味着必须满足该属性才能运行Method()
。
我知道你可以叠加这样的属性,
EX2。
[HttpPost]
[RequireHttps]
public void Method2()
{
//More code
}
在使用Method2()
之前,检查是否满足attribute1'AND'atribute2。
但你能'或'属性吗?这样的事可能吗?
EX3。
[HttpPost || RequireHttps]
public void Method3()
{
//Even more code
}
因此,如果满足任一属性,您可以使用Method3()
。
编辑:对不起,印象属于名为Annotations的属性。修好了。
答案 0 :(得分:6)
这意味着必须满足注释才能运行Method()
这是一种误解。
[HttpPost]
属性是一个指令,此方法仅匹配Post请求。它不像安全检查那样“需求”。只有一些属性以这种方式工作。
但是当将它们视为“要求”时:它们独立工作,因此总是会导致 AND 行为。
答案 1 :(得分:1)
在C#中,它们不是注释,而是属性
默认情况下,属性不会用于除装饰类,方法,属性等之外的任何内容。但是通过反射,您可以将它们用于您喜欢的任何内容,就像ASP.NET MVC对HttpPost
和RequireHttps
所做的那样。 {1}}。
不幸的是他们无法进行OR'ed。