Можете ли вы обнаружить унаследованные свойства класса в шаблоне t4?
У меня есть два класса, вот так:
public class User : ManagedRecord
{
public int UserId { get; set;}
public string UserName { get; set;}
}
public abstract class ManagedRecord
{
public int Deleted { get; set;}
public DateTime CreatedDate { get; set;}
}
Когда шаблон t4 создает поля на основе пользователя, он сначала размещает поля ManagedRecord, а затем поля для пользователя.
Есть ли способ обнаружить унаследованные поля класса, чтобы я мог обрабатывать их по-разному?
Шаблон t4 предназначен для шаблона страницы редактирования ASP.NET MVC 5, который создает поля формы на основе используемого класса.
Код t4 выглядит следующим образом:
<#@ template language="C#" HostSpecific="True" #>
<#@ output extension=".cshtml" #>
<#@ include file="Imports.include.t4" #>
@model <#= ViewDataTypeName #>
<#
string boolType = "System.Boolean";
int tabIndex = 1;
bool autofocus = true;
Version requiredMvcVersion = new Version("5.1.0.0");
bool isControlHtmlAttributesSupported = MvcVersion >= requiredMvcVersion;
foreach (PropertyMetadata property in ModelMetadata.Properties) {
if (property.Scaffold && !property.IsAssociation) {
#>
@Html.EditorFor(model => model.<#= property.PropertyName #>)
<#
}
#>