我正在移植我之前在VS2013中使用的以前的MVC4.5 T4腳手架模板。一切進展順利,幸運的是,它背後的邏輯並沒有太大改變,但很多命名空間,對象和屬性都被重新命名,就像我預期的那樣。在VS2013中獲取自定義屬性T4腳手架模板
然而,棘手的位是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
似乎對此
PS是無用的:
這個問題可以被視爲my previous one
如果你有興趣在如何自定義註釋可以在VS2012訪問的子問題,請this one
嗯......我沒有時間去嘗試這個,但由於沒有人能夠在很長時間內做出貢獻,我會接受這個答案。一旦我有機會再次探究這一點,我會分享我的發現。乾杯! –