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); }