예제 #1
0
파일: Scope.cs 프로젝트: smcardle88/lamar
        public object GetInstance(Type serviceType)
        {
            assertNotDisposed();
            var resolver = ServiceGraph.FindResolver(serviceType);

            if (resolver == null)
            {
                throw new LamarMissingRegistrationException(serviceType);
            }

            return(resolver(this));
        }
예제 #2
0
        public object GetInstance(Type serviceType)
        {
            assertNotDisposed();
            var resolver = ServiceGraph.FindResolver(serviceType);

            if (resolver == null)
            {
                if (ServiceGraph.Families.TryGetValue(serviceType, out var family))
                {
                    if (family.CannotBeResolvedMessage.IsNotEmpty())
                    {
                        throw new LamarMissingRegistrationException(family);
                    }
                }

                throw new LamarMissingRegistrationException(serviceType);
            }

            return(resolver(this));
        }
예제 #3
0
파일: Scope.cs 프로젝트: smcardle88/lamar
 public object TryGetInstance(Type serviceType)
 {
     assertNotDisposed();
     return(ServiceGraph.FindResolver(serviceType)?.Invoke(this));
 }