Exemple #1
0
        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);
        }