private void AddBuilder(Type contract, Type concrete, ServiceLifetime lifeCycle, Func <Container, dynamic> initializer, dynamic instance) { var ctor = _profiler.GetOptimalConstructor(concrete); var parameters = _profiler.GetParameters(ctor); var constructor = ConstructorEmitter.Emit(concrete, ctor, parameters); var profile = new Profile(contract, lifeCycle, parameters, constructor, initializer, instance); var builder = _profiler.GetTypeBuilder(profile, lifeCycle); _builders.TryAdd(contract, builder); }