我创建了一组T4模板来为DAL生成单元类。我遇到的一个问题是根据" StringLength"提供正确长度的字符串。属性的属性。
我尝试访问CodeProperty.Attributes,但它说零属性,我知道这是不正确的。
非常感谢任何帮助!
答案 0 :(得分:0)
以防万一其他人偶然发现......
我无法使用CodeProperty来获取属性。相反,我使用以下给定我已经在我的搜索中使用CodeClass和CodeProperty:
private int GetStringLength(CodeProperty codeProperty, CodeClass codeClass)
{
var type = Type.GetType(codeClass.Name); //you may need to use assembly qualified name
var props = type.GetProperties();
if (props != null && props.Any(p => p.Name.Equals(codeProperty.Name)))
{
var matchingProperty = props.First(p => p.Name.Equals(codeProperty.Name);
var strLenAttr = (StringLengthAttribute) matchingPropery.GetCustomAttributes(typeof(StringLengthAttribute), true).FirstOrDefault();
if (strLenAttr == null) return 0;
return strLenAttr.MaximumLength;
}
return 0;
}