在MVC上设置description属性
本文关键字:description 属性 设置 MVC | 更新日期: 2023-09-27 18:03:44
是否可以在动作上设置描述?如果可能的话,我怎样才能得到描述?
的例子:
public class TestingController : Controller
{
[Description("Description Test")]
public ActionResult Index()
{
return View();
}
}
您可以这样做:首先需要定义一个属性,然后使用反射来提取其信息:
[AttributeUsage(AttributeTargets.All, Inherited = true)]
public class DescriptionAttribute : Attribute
{
private readonly string _title;
public string Title
{
get { return _title; }
}
public DescriptionAttribute(string title)
{
_title = title;
}
}
public static class Extensions
{
public static string GetDisplayName(this MemberInfo target)
{
return target.GetCustomAttributes(typeof(DescriptionAttribute), true)
.Cast<DescriptionAttribute>().Select(d => d.Title)
.SingleOrDefault() ?? target.Name;
}
}
并这样使用:
public class TestingController : Controller
{
[Description("Description Test")]
public ActionResult Index()
{
return View();
}
}
你可以这样使用反射提取信息:
var controllers =
typeof (MvcApplication).Assembly.GetTypes()
.Where(typeof (IController).IsAssignableFrom).Where(method => method.IsPublic && method.IsDefined(typeof(DescriptionAttribute), true));