如何使用T4模板获取模型属性

时间:2011-05-03 08:04:51

标签: reflection t4 t4scaffolding

我正在使用T4Scaffolding,并尝试创建自定义Scaffold模板。这不是asp.net项目,不是MVC。

我的用户类:

   public class User
   {
     public int Id {get;set;}
     public string Name {get; set;}
   }

在.cs.t4文件中,我需要获取用户属性,我尝试使用:

var propertyInfos = typeof(Model.).GetProperties(BindingFlags.Public |
                                              BindingFlags.Static);
foreach (PropertyInfo propertyInfo in propertyInfos)

...

但它不起作用,我知道在asp.net mvc中我可以使用

foreach (ModelProperty property in GetModelProperties(Model.ViewDataType, false))

asp.net中的正确方法是什么?

感谢您的任何评论...

1 个答案:

答案 0 :(得分:1)

假设您传递的是具有属性ViewDataType的模型,您可以使用以下代码获取该类型的属性:

var modelType = (EnvDTE.CodeType) Model.ViewDataType;
var modelProperties = modelType.VisibleMembers().OfType<EnvDTE.CodeProperty>();

希望有所帮助。