Esempio n. 1
0
 /// <inheritdoc/>
 public void Register(IOpenGenericBinding openGenericBinding)
 {
     lock (syncLock) {
         IBindingInternal internalBinding = (IBindingInternal)openGenericBinding;
         ValidateInternalBinding(internalBinding);
         genericBindingRresolver.Register(internalBinding);
     }
 }
Esempio n. 2
0
 /// <inheritdoc/>
 public void Register(IMembersBinding membersBinding)
 {
     lock (syncLock) {
         IBindingInternal internalBinding = (IBindingInternal)membersBinding;
         ValidateInternalBinding(internalBinding);
         BindExplicit(internalBinding);
     }
 }
Esempio n. 3
0
 private IResolver BindExplicit(IBindingInternal internalBinding)
 {
     try {
         return((IResolver)bindExplicitGeneric
                .MakeGenericMethod(internalBinding.BindingKey.BindingType, internalBinding.ConcreteType)
                .Invoke(this, new object[] { internalBinding.BindingKey, internalBinding.BindingConfig }));
     } catch (TargetInvocationException ex) {
         throw ex.InnerException;
     }
 }
Esempio n. 4
0
        private void ValidateInternalBinding(IBindingInternal internalBinding)
        {
            var bindingKey = internalBinding.BindingKey;

            if (typeof(Injector).Equals(bindingKey.BindingType))
            {
                throw InjectorErrors.ErrorMayNotBindInjector.FormatEx();
            }

            if (resolveCalled && !bindingKey.IsImplicit)
            {
                throw InjectorErrors.ErrorBindingRegistrationNotPermitted.FormatEx();
            }
        }
		/// <summary>
		/// Register the specified openGeneric binding.
		/// </summary>
		/// <param name="openGenericBinding">Open generic binding.</param>
		internal void Register (IBindingInternal openGenericBinding) {
			allGenericResolvers.Add (openGenericBinding.BindingKey, openGenericBinding.BindingConfig);
		}