Visual studio 如何在VisualStudio中根据uml建模项目生成代码,这取决于原型而不是元素类型?

Visual studio 如何在VisualStudio中根据uml建模项目生成代码,这取决于原型而不是元素类型?,visual-studio,uml,code-generation,class-diagram,Visual Studio,Uml,Code Generation,Class Diagram,我有很多类和接口的类图 我想通过我的自定义模板(大约10个模板)为一些类生成代码。为了做到这一点,我现在必须为每个“特殊”类指定模板 但我不想复制粘贴模板绑定。相反,我想在根级别设置它,并为我的特殊类设置原型,这样代码生成将只为特定类应用模板。我怎样才能做到呢?我找到了答案! 我需要做的唯一一件事是重写检查我的模板是否可以应用于任何UML元素的方法。 我在t4模板文件中添加了下一个代码,以检查原型“辅助”是否应用于类: <#+ protected override bool App

我有很多类和接口的类图

我想通过我的自定义模板(大约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");
    }
#>
s.Name==“辅助”);
}
#>