替代TypeWriter中的属性以允许部分类中的属性

时间:2018-04-06 04:47:32

标签: c# asp.net-core typewriter

部分支持的实现非常棒,因为这允许解释定制的脚手架模型(例如,为模型生成部分,然后使用匹配的部分来提供定制)。我唯一的问题是我曾经使用两个属性标签(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;
}

0 个答案:

没有答案