Exemple #1
0
        private SelectedProperty CreateSelectedProperty(IBuilderContext context, IPolicyList resolverPolicyDestination, PropertyInfo property)
        {
            string           key    = Guid.NewGuid().ToString();
            SelectedProperty result = new SelectedProperty(property, key);

            resolverPolicyDestination.Set <IDependencyResolverPolicy>(CreateResolver(property), key);
            DependencyResolverTrackerPolicy.TrackKey(context.PersistentPolicies,
                                                     context.BuildKey,
                                                     key);
            return(result);
        }
        private SelectedConstructor CreateSelectedConstructor(IBuilderContext context, ConstructorInfo ctor)
        {
            SelectedConstructor result = new SelectedConstructor(ctor);

            foreach (ParameterInfo param in ctor.GetParameters())
            {
                string key = Guid.NewGuid().ToString();
                IDependencyResolverPolicy policy = CreateResolver(param);
                context.PersistentPolicies.Set <IDependencyResolverPolicy>(policy, key);
                DependencyResolverTrackerPolicy.TrackKey(context.PersistentPolicies,
                                                         context.BuildKey,
                                                         key);
                result.AddParameterKey(key);
            }
            return(result);
        }
        private SelectedMethod CreateSelectedMethod(IBuilderContext context, IPolicyList resolverPolicyDestination, MethodInfo method)
        {
            SelectedMethod result = new SelectedMethod(method);

            foreach (ParameterInfo parameter in method.GetParameters())
            {
                string key = Guid.NewGuid().ToString();
                IDependencyResolverPolicy resolver = CreateResolver(parameter);
                resolverPolicyDestination.Set <IDependencyResolverPolicy>(resolver, key);
                DependencyResolverTrackerPolicy.TrackKey(context.PersistentPolicies,
                                                         context.BuildKey,
                                                         key);
                result.AddParameterKey(key);
            }
            return(result);
        }