我正在将之前的MVC4.5 T4脚手架模板移植到VS2013中。一切顺利,幸运的是它背后的逻辑并没有太大变化,但很多命名空间、对象和属性都像我预期的那样被重命名了。
然而,棘手的部分是PropertyInfo。似乎不再可以使用PropertyInfo,因为新的ModelMetadata对象只包含PropertyMetadata。由于PropertyMetadata没有GetCustomAttributes()方法或类似方法,因此我无法升级以下代码片段:
然而,棘手的部分是PropertyInfo。似乎不再可以使用PropertyInfo,因为新的ModelMetadata对象只包含PropertyMetadata。由于PropertyMetadata没有GetCustomAttributes()方法或类似方法,因此我无法升级以下代码片段:
<#+
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
在这方面似乎没什么用处。
附言:
这个问题可以被认为是我的前一个问题的子问题。
如果您对如何在 VS2012 中访问自定义注解感兴趣,请参见这个问题。