public object Instance(Type type, GenerationTrace trace) { return(_customizations.Where(c => c.AppliesTo(type)).FirstOrNothing() .Fold( () => _inner.Instance(type, trace, _customizations), c => c.Generate(this, trace))); }
public object Instance(Type type, GenerationRequest request) { return(request.GenerationCustomizations.Where(c => c.AppliesTo(type)).FirstMaybe() .SelectOrElse( c => c.Generate(type, this, request), () => _inner.Instance(type, request, request.GenerationCustomizations))); }