获取操作名称作为Attribute-parameter

时间:2017-03-01 11:05:55

标签: c# asp.net-mvc methods reflection attributes

我有一些允许参数的动作属性。这就是它的样子:

[DeleteActionCache(Action="GetTerms")]
public ActionResult AddTerm(string term){ }

public ActionResult GetTerms() {}

现在我想摆脱神奇的字符串" GetTerms"在我的属性中。所以我更喜欢这样的东西:(伪代码,不工作)

[DeleteActionCache(Action=this.GetTerms().GetType().Name)]

在我的属性类中有一个额外的属性,并且在我的那个类中进行" Method2String" -Conversions对我来说没问题,如果需要它来实现我想要的。

信息:我正在寻找获取当前方法名称的方法( MethodBase.GetCurrentMethod

1 个答案:

答案 0 :(得分:7)

nameof可以提供帮助:

[DeleteActionCache(Action=nameof(GetTerms))]

根据属性的使用,你可能最好在从成员读取属性的地方处理它,但在这种情况下似乎很难,因为动作和动作之间没有固定的关系。属性。