public CompositeSignature(Type[] sourceTypes = null, string[] propertyNameExclutions = null, Type baseType = null, bool prettyNames = true, CompositeProperty[] ClassProperties = null) { if (ClassProperties == null) { ClassProperties = new CompositeProperty[] { } } ; if (propertyNameExclutions == null) { propertyNameExclutions = new string[] { } } ; if (sourceTypes == null) { sourceTypes = new Type[] { } } ; else if (baseType == null) { baseType = DefaultBaseType(sourceTypes); } if (baseType != null) { propertyNameExclutions = baseType .GetProperties() .Select(p => p.Name) .Union(propertyNameExclutions) .ToArray(); } _SourceTypes = sourceTypes; _PropertyNameExclutions = propertyNameExclutions; _BaseType = baseType; _PrettyNames = prettyNames; _ClassProperties = ClassProperties; }
private static string pretty(CompositeProperty _ClassProperty) => pretty(_ClassProperty.Name);