/// <summary>
        /// Retrieves an <see cref="ObjectProvider"/> based on the provider binder.
        /// </summary>
        /// <param name="binder">The <see cref="ObjectProviderBinder"/> to retrieve the provider for.</param>
        /// <returns>An <see cref="ObjectProvider"/> base on the binder supplied.</returns>
        public override ObjectProvider GetObjectProvider(ObjectProviderBinder binder)
        {
            if (binder == null)
            {
                throw new AdapterException(string.Format(CultureInfo.CurrentCulture, Resources.ArgumentNullExceptionMessage), new ArgumentNullException("binder")) { ExceptionId = AdapterException.SystemExceptionGuid };
            }

            if (binder.ObjectProviderProxy.ObjectDefinition != null && !IsStaticObjectProvider(binder.ObjectProviderProxy.ObjectDefinition))
            {
                return this.GetObjectProviders().SingleOrDefault(p => p.Id == GetDynamicProviderId(binder.ObjectProviderProxy.ObjectDefinition));
            }

            return base.GetObjectProvider(binder);
        }
        /// <summary>
        /// Retrieves an <see cref="ObjectProvider"/> based on the provider binder.
        /// </summary>
        /// <param name="binder">The <see cref="ObjectProviderBinder"/> to retrieve the provider for.</param>
        /// <returns>An <see cref="ObjectProvider"/> base on the binder supplied.</returns>
        public override ObjectProvider GetObjectProvider(ObjectProviderBinder binder)
        {
            if (binder == null)
            {
                throw new AdapterException(string.Format(CultureInfo.CurrentCulture, Resources.ArgumentNullExceptionMessage), new ArgumentNullException("binder"))
                      {
                          ExceptionId = AdapterException.SystemExceptionGuid
                      };
            }

            if (binder.ObjectProviderProxy.ObjectDefinition != null && !IsStaticObjectProvider(binder.ObjectProviderProxy.ObjectDefinition))
            {
                return(this.GetObjectProviders().SingleOrDefault(p => p.Id == GetDynamicProviderId(binder.ObjectProviderProxy.ObjectDefinition)));
            }

            return(base.GetObjectProvider(binder));
        }
示例#3
0
 public TargetBindingParent(IObjectProvider objectProvider)
 {
     objectProviderBinder = new ObjectProviderBinder <ITargetBinding>(objectProvider);
 }
 public EventInvokersBinding(IObjectProvider objectProvider, EventInvokers eventInvokers)
 {
     this.eventInvokers   = eventInvokers;
     objectProviderBinder = new ObjectProviderBinder <ITypeBinding <EventInvokers> >(objectProvider);
 }