【发布时间】:2014-06-17 13:06:58
【问题描述】:
我正在移植我以前的 MVC4.5 T4 脚手架模板以在 VS2013 中使用。一切都很顺利,幸运的是它背后的逻辑并没有太大变化,但是很多命名空间、对象和属性都像我预期的那样被重命名了。
然而,棘手的一点是PropertyInfo。似乎不再可以使用PropertyInfo,因为新的ModelMetadata 对象只包含PropertyMetadata。由于PropertyMetadata 没有GetCustomAttributes() 方法或类似方法,我坚持升级以下sn-p:
<#+
string SearchableBy(PropertyInfo property) {
foreach (object attribute in property.GetCustomAttributes(true))
{
var searchable = attribute as SearchableAttribute;
if (searchable != null)
{
return searchable.By == "" ? GetValueExpressionSuffix(property) :
searchable.By;
}
}
return null;
}
#>
- 是否可以通过某种方式在 T4 控制器/视图脚手架中获取
PropertyInfo对象? - 如果不是,访问自定义注释的新/正确方法是什么?
ModelMetadata似乎对此毫无用处
PS:
这个问题可以认为是my previous one的子问题
如果您对如何在 VS2012 中访问自定义注释感兴趣,请参阅this one
【问题讨论】:
标签: visual-studio-2013 data-annotations t4 asp.net-mvc-scaffolding