示例#1
0
        public T ResolveOrDefault <T>()
        {
            Type type = TypeGetter.GetType <T>();

            AssemblyRegistrar.RegisterIfNotExist(Storage.Assemblies, type);
            IService service = ServiceFinder.Find(Storage.Services, type);

            if (service == null)
            {
                return(default);
示例#2
0
        public object ResolveOrAuto(Type type)
        {
            AssemblyRegistrar.RegisterIfNotExist(Storage.Assemblies, type);
            IService service = ServiceFinder.Find(Storage.Services, type);

            if (service == null)
            {
                IEnumerable <IService> services = ServicesGenerator.GenerateServices(type, Storage.Assemblies, this);

                ServiceRegistrar.Register(Storage.Services, services);

                return(ServiceInstanceResolver.ResolveInstance(ServiceFinder.Find(Storage.Services, type), this));
            }

            return(ServiceInstanceResolver.ResolveInstance(service, this));
        }