部分支持的实现非常棒,因为这允许解释定制的脚手架模型(例如,为模型生成部分,然后使用匹配的部分来提供定制)。我唯一的问题是我曾经使用两个属性标签(Exclude / Include)来调整模型中包含的内容(见下文)。
这不适用于局部因为你不能修改第二部分属性上的标签,并且脚手架显然不知道放置标签的位置。有什么替代方法可以解决这个问题?
我可以创建一个JSON文件,其中包含每个类中的排除/包含属性的列表并加载它,但我无法解析它,因为没有本机可用的JSON库。我可能只使用一个CSV,但这一切看起来都很笨拙。有什么想法吗?
List<Property> getProperties(Class c)
{
List<string> exclProperties = new List<string>(){"CreatedOn", "ModifiedOn", "CreatedBy", "ModifiedBy", "Hrid","UniqueId","OptimisticLockField"};
List<Property> lstInclProps = new List<Property>();
bool inclColl = inclCollections(c);
foreach (Property p in c.Properties)
{
if (PropertyAttribute(p,"Exclude",null)=="true") continue;
if (PropertyAttribute(p,"Include",null)=="true") lstInclProps.Add(p);
if (exclProperties.Any(x=>x.ToLower()== p.Name.ToLower())) continue;
if (p.Type.IsEnumerable && !inclColl) continue;
lstInclProps.Add(p);
}
return lstInclProps;
}