private void RegisterInternal(Type dependencyType, Type instanceType, Action <WeaklyTypedServiceConfigurator>?configurator, IConstructorResolver?constructorSelector, string callerFilePath, int callerLineNumber) { var metadata = new BindingMetadata(callerFilePath, callerLineNumber, Registrations.CurrentModule); var context = new WeaklyTypedServiceConfigurator(dependencyType, instanceType, metadata, Settings, constructorSelector); configurator?.Invoke(context); ServiceBinding serviceBinding = context.ToBinding(); Registrations.AddBinding(serviceBinding); }
private void RegisterInternal <TImplementation>(Action <StronglyTypedServiceConfigurator <TImplementation> >?configurator, SinglyLinkedListNode <Type> serviceTypes, string callerFilePath, int callerLineNumber) { var metadata = new BindingMetadata(callerFilePath, callerLineNumber, Registrations.CurrentModule); var context = new StronglyTypedServiceConfigurator <TImplementation>(metadata, serviceTypes, Settings); configurator?.Invoke(context); ServiceBinding serviceBinding = context.ToBinding(); Registrations.AddBinding(serviceBinding); }
private void RegisterInternal(SinglyLinkedListNode <Type> serviceTypes, Type implementationType, Action <WeaklyTypedServiceConfigurator>?configurator, string callerFilePath, int callerLineNumber) { var metadata = new BindingMetadata(callerFilePath, callerLineNumber, Registrations.CurrentModule); var context = new WeaklyTypedServiceConfigurator(serviceTypes, implementationType, metadata, Settings); configurator?.Invoke(context); ServiceBinding serviceBinding = context.ToBinding(); Registrations.AddBinding(serviceBinding); }
private void RegisterInternal <TDependency, TInstance>(Action <StronglyTypedServiceConfigurator <TDependency, TInstance> >?configurator, IConstructorResolver?constructorSelector, string callerFilePath, int callerLineNumber) where TInstance : class, TDependency { var metadata = new BindingMetadata(callerFilePath, callerLineNumber, Registrations.CurrentModule); var context = new StronglyTypedServiceConfigurator <TDependency, TInstance>(metadata, Settings, constructorSelector); configurator?.Invoke(context); ServiceBinding serviceBinding = context.ToBinding(); Registrations.AddBinding(serviceBinding); }
internal T AddFinalizer <T>(T obj, ServiceBinding key) where T : class { SinglyLinkedListKeyNode <ServiceBinding, ActionList <object> >?initialValue, computedValue; do { initialValue = _finalizers; ActionList <object>?list = initialValue.GetOrDefault(key); if (list != null) { list.Add(obj); return(obj); } computedValue = initialValue.Add(key, new ActionList <object>(key.Finalizer !)); }while (!ReferenceEquals(Interlocked.CompareExchange(ref _finalizers, computedValue, initialValue), initialValue)); computedValue.Value.Add(obj); return(obj); }
internal T AddFinalizer <T>(T obj, ServiceBinding serviceBinding) where T : class { ActionList <object> list = Finalizers.GetOrDefault(serviceBinding); if (list != null) { list.Add(obj); return(obj); } lock (Finalizers) { list = Finalizers.GetOrDefault(serviceBinding); if (list == null) { list = new ActionList <object>(serviceBinding.Finalizer !); Finalizers.Add(serviceBinding, list); } } list.Add(obj !); return(obj); }
public void AddBinding(ServiceBinding serviceBinding) { Default = serviceBinding; Bindings.Add(serviceBinding); }
public Registration(Type dependencyType, ServiceBinding serviceBinding) { DependencyType = dependencyType; Default = serviceBinding; Bindings = new ArrayList <ServiceBinding>(new[] { serviceBinding }); }
public void AddBinding(ServiceBinding serviceBinding) { Bindings.Add(serviceBinding); }
public Registration(ServiceBinding serviceBinding) { Bindings = new ArrayList <ServiceBinding>(new[] { serviceBinding }); }