/// <summary> /// Creates a non-generic binding. /// </summary> /// <param name="serviceType">Type of the service.</param> /// <returns></returns> public IBindingNonGeneric Bind(Type serviceType) { var bindingConfiguration = new BindingConfigurationForCode(serviceType); AddBinding(bindingConfiguration); return(new BindingNonGeneric(this, bindingConfiguration)); }
/// <summary> /// Creates a generic binding. /// </summary> /// <typeparam name="TService">The type of the service.</typeparam> /// <returns></returns> public IBindingGeneric <TService> Bind <TService>() { var bindingConfiguration = new BindingConfigurationForCode(typeof(TService)); var binding = new BindingGeneric <TService>(this, bindingConfiguration); AddBinding(bindingConfiguration); return(binding); }
private void AddBinding(BindingConfigurationForCode bindingConfiguration) { List <BindingConfigurationForCode> bindingConfigurations; if (!_serviceTypeToBindingConfigurationsMap.TryGetValue(bindingConfiguration.ServiceType, out bindingConfigurations)) { bindingConfigurations = new List <BindingConfigurationForCode>(); } else { LogHelper.Context.Log.WarnFormat("A binding for service type '{0}' is aadded multiple times. This might result in unexpected behaviour. If the service should be bound to multiple implementations, use '{1}' in '{2}' or the similar member in generic type.", bindingConfiguration.ServiceType.FullName, nameof(IBindingImplementationNonGeneric.Service), typeof(IBindingImplementationNonGeneric)); } bindingConfigurations.Add(bindingConfiguration); BindingConfigurationAdded?.Invoke(this, new BindingConfigurationAddedEventArgs(bindingConfiguration)); }
/// <summary> /// Initializes a new instance of the <see cref="BindingGeneric{TService}" /> class. /// </summary> /// <param name="serviceRegistrationBuilder">The service registration builder.</param> /// <param name="bindingConfiguration">The binding configuration.</param> public BindingGeneric([NotNull] IServiceRegistrationBuilder serviceRegistrationBuilder, [NotNull] BindingConfigurationForCode bindingConfiguration) : base(serviceRegistrationBuilder, bindingConfiguration) { }
/// <summary> /// Initializes a new instance of the <see cref="Binding" /> class. /// </summary> /// <param name="serviceRegistrationBuilder">The service registration builder.</param> /// <param name="bindingConfiguration">The binding configuration.</param> public Binding([NotNull] IServiceRegistrationBuilder serviceRegistrationBuilder, [NotNull] BindingConfigurationForCode bindingConfiguration) { ServiceRegistrationBuilder = serviceRegistrationBuilder; BindingConfiguration = bindingConfiguration; }
/// <summary> /// Initializes a new instance of the <see cref="BindingConfigurationAddedEventArgs" /> class. /// </summary> /// <param name="bindingConfiguration">The binding configuration.</param> public BindingConfigurationAddedEventArgs([NotNull] BindingConfigurationForCode bindingConfiguration) { BindingConfiguration = bindingConfiguration; }