public DelegateInvocation(IKernel kernel, ITypedFactoryComponentSelector selector, MethodInfo invoke, Type serviceType)
		{
			this.kernel = kernel;
			this.selector = selector;
			this.invoke = invoke;
			this.serviceType = serviceType;
		}
Example #2
0
        public void SelectedWith(ITypedFactoryComponentSelector selector)
        {
            if (selector == null)
            {
                throw new ArgumentNullException("selector");
            }

            selectorReference = new InstanceReference <ITypedFactoryComponentSelector>(selector);
        }
Example #3
0
 public TypedFactoryInterceptor(IKernelInternal kernel, ITypedFactoryComponentSelector componentSelector)
 {
     ComponentSelector = componentSelector;
     this.kernel       = kernel;
     scope             = kernel.ReleasePolicy.CreateSubPolicy();
 }
		public TypedFactoryInterceptor(IKernelInternal kernel, ITypedFactoryComponentSelector componentSelector)
		{
			ComponentSelector = componentSelector;
			this.kernel = kernel;
			scope = kernel.ReleasePolicy.CreateSubPolicy();
		}
Example #5
0
		public Resolve(IKernel kernel, ITypedFactoryComponentSelector selector)
		{
			this.kernel = kernel;
			this.selector = selector;
		}
		public TypedFactoryInterceptor(IKernel kernel, ITypedFactoryComponentSelector componentSelector)
		{
			ComponentSelector = componentSelector;
			this.kernel = kernel;
		}
		public Resolve(IKernel kernel, ITypedFactoryComponentSelector selector, Action<object> trackComponentCallback)
		{
			this.kernel = kernel;
			this.selector = selector;
			this.trackComponentCallback = trackComponentCallback;
		}
		public TypedFactoryInterceptor(IKernel parent, ITypedFactoryComponentSelector componentSelector)
		{
			ComponentSelector = componentSelector;
			kernel = new DefaultKernel();
			parent.AddChildKernel(kernel);
		}
 /// <summary>
 ///   Marks the component as typed factory.
 /// </summary>
 /// <typeparam name = "TFactoryInterface"></typeparam>
 /// <param name = "registration"></param>
 /// <param name = "selector">The <see cref = "ITypedFactoryComponentSelector" /> instance to be used for this factory</param>
 /// <returns></returns>
 /// <remarks>
 ///   Only interfaces and delegates are legal to use as typed factories. Methods with out parameters are not allowed.
 ///   When registering component as typed factory no implementation should be provided (in case there is any it will be ignored).
 ///   Typed factories rely on <see cref = "IInterceptorSelector" /> set internally, so users should not set interceptor selectors explicitly;
 ///   otherwise the factory will not function correctly.
 /// </remarks>
 public static ComponentRegistration <TFactoryInterface> AsFactory <TFactoryInterface>(
     this ComponentRegistration <TFactoryInterface> registration, ITypedFactoryComponentSelector selector)
     where TFactoryInterface : class
 {
     return(AsFactory(registration, x => x.SelectedWith(selector)));
 }