public static TDefinition Inherit <TDefinition>(this DefinitionBase definition, Action <TDefinition> config) where TDefinition : DefinitionBase, new() { var model = definition.Clone() as TDefinition; if (config != null) { config(model); } return(model); }