예제 #1
0
        private InstanceFactory ResolveDependency(Type type, ServiceBinding dependency, CircularDependencyDetector circularDependencyDetector)
        {
            circularDependencyDetector.Enter(type);
            GenerateBaseExpression(dependency, circularDependencyDetector);
            InstanceFactory factory = GenerateInstanceFactory(type, dependency, circularDependencyDetector);

            circularDependencyDetector.Leave(type);
            return(factory);
        }
예제 #2
0
 private InstanceFactory?TryResolveDependency(Type type, ServiceBinding dependency, CircularDependencyDetector circularDependencyDetector)
 {
     try
     {
         Settings.Logger.Log($"{nameof(TryResolveDependency)} for {type}", circularDependencyDetector.Count);
         circularDependencyDetector.Enter(type);
         GenerateBaseExpression(dependency, circularDependencyDetector);
         InstanceFactory factory = GenerateInstanceFactory(type, dependency, circularDependencyDetector);
         return(factory);
     }
     catch (Exception e)
     {
         dependency.ResolveError = new DependencyResolveException(type, dependency, e);
         return(null);
     }
     finally
     {
         circularDependencyDetector.Leave(type);
     }
 }