示例#1
0
        private object HandleInstancing(Type type, object[] parameters, ServiceObject serviceObj)
        {
            if (serviceObj.InstanceType == InstanceType.Transient)
            {
                return(Activator.CreateInstance(type, parameters));
            }
            else
            {
                if (!singletons.ContainsKey(type))
                {
                    var instance = Activator.CreateInstance(type, parameters);

                    singletons.Add(type, instance);
                }

                return(singletons[type]);
            }
        }
示例#2
0
        private void RegisterService(Type abst, Type conc, InstanceType instanceType)
        {
            var serviceObject = new ServiceObject(instanceType, conc);

            if (!_register.ContainsKey(abst))
            {
                var serviceList = new List <ServiceObject>()
                {
                    serviceObject
                };

                _register.Add(abst, serviceList);
            }
            else
            {
                _register[abst].Add(serviceObject);
            }
        }