0
我有很多類和接口的類圖。如何根據構造型而不是元素類型從uml建模項目在visual studio中生成代碼?
我想爲我的自定義模板(約10個模板)生成一些類的代碼。爲了做到這一點,我必須爲每個「特殊」類指定我的模板。
但我不想複製粘貼模板綁定。相反,我想在根級上設置它,併爲我的特殊類設置示例構造型,以便代碼生成僅將模板應用於特定類。我怎樣才能實現它?
我有很多類和接口的類圖。如何根據構造型而不是元素類型從uml建模項目在visual studio中生成代碼?
我想爲我的自定義模板(約10個模板)生成一些類的代碼。爲了做到這一點,我必須爲每個「特殊」類指定我的模板。
但我不想複製粘貼模板綁定。相反,我想在根級上設置它,併爲我的特殊類設置示例構造型,以便代碼生成僅將模板應用於特定類。我怎樣才能實現它?
我找到了答案! 我需要做的唯一事情就是覆蓋檢查我的模板是否可以應用於任何UML元素的方法。 我將下一個代碼添加到我的t4模板文件中,以檢查該類型是否應用了「輔助」原型:
<#+
protected override bool AppliesToElement()
{
bool isTemplate = this.Element.IsTemplate;
bool isBoundElement = this.Element.TemplateBindings != null && this.Element.TemplateBindings.Any();
return !isTemplate && !isBoundElement && GetStereotype(this.Element) == "class"
&& this.Element.AppliedStereotypes.Any(s=>s.Name == "auxiliary");
}
#>