2011-05-03 88 views
2

我正在使用T4Scaffolding,並嘗試創建自定義的Scaffold模板。這不是asp.net項目,不是MVC。如何使用T4模板獲取模型屬性

我的用戶等級:

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中的正確方法?

感謝任何評論...

+0

也許這個問題可能是有用的http://stackoverflow.com/questions/7558809/reflection-with-t4-templates – FelixMM 2011-12-29 15:53:44

回答

1

假設你傳遞一個模型屬性ViewDataType您可以用下面的代碼獲取類型的屬性:

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

希望有所幫助。

+0

嗨,如何fet模型,是否需要添加任何外部參考在我的Create.cs中。 t4文件。 – 2015-12-18 07:32:05