在意向架构师模板中,如何检查属性的类型是否为枚举顺序以生成适当的代码?



我有一个模板,它为类上的属性生成代码。我需要检查每个属性的类型,并对不同的类型进行不同的处理(在我的情况下,我需要检查Enum属性(。

例如,如果有这样的情况,我将如何实现IsEnum?:

if (attribute.IsEnum()) {
statements.Add($".HasConversion(new EnumToStringConverter<{attribute.Type.Element.Name}>());");
}

实现这一点的一种方法是使用该属性的Specialization Type的Extension方法。示例:

public static class AttributeExtensions
{
public static bool IsEnum(this AttributeModel attribute)
{
return attribute.Type.Element.SpecializationTypeId == EnumModel.SpecializationTypeId;
}
}

最新更新