Exemple #1
0
        public void AddTransient <T>(object implementation)
        {
            var dependency = new Dependency(typeof(T), LifeTime.Transient);

            dependency.AddImplementation(implementation);
            _dependencies.Add(dependency);
        }
Exemple #2
0
        public void AddSingleton <T>(object implementation)
        {
            var dependency = new Dependency(typeof(T), LifeTime.Singleton);

            dependency.AddImplementation(implementation);
            _dependencies.Add(dependency);
        }
Exemple #3
0
        public object CreateImplementation(Dependency dependency, Func <Type, object> factory)
        {
            if (dependency.Implemented)
            {
                return(dependency.Implementation);
            }

            var implementation = factory(dependency.Type);

            if (dependency.LifeTime == DependencyLifetime.Singleton)
            {
                dependency.AddImplementation(implementation);
            }

            return(implementation);
        }