private void DecorateInternal <TDependency, TDecorator>(Action <StronglyTypedDecoratorConfigurator <TDependency, TDecorator> >?registrator = null, string callerFilePath = "", int callerLineNumber = -1) where TDependency : class where TDecorator : TDependency { var context = new StronglyTypedDecoratorConfigurator <TDependency, TDecorator>(callerFilePath, callerLineNumber, Registrations.CurrentModule); registrator?.Invoke(context); Expression binding = context.ToBinding(); Registrations.AddDecorator(typeof(TDependency), binding); }
private void DecorateInternal <TDependency, TDecorator>(Action <StronglyTypedDecoratorConfigurator <TDependency, TDecorator> >?configurator, IConstructorResolver?constructorSelector, string callerFilePath, int callerLineNumber) where TDependency : class where TDecorator : TDependency { var metadata = new BindingMetadata(callerFilePath, callerLineNumber, Registrations.CurrentModule); var context = new StronglyTypedDecoratorConfigurator <TDependency, TDecorator>(metadata, Settings, constructorSelector); configurator?.Invoke(context); Expression binding = context.ToBinding(); Registrations.AddDecorator(typeof(TDependency), binding); }
private void DecorateInternal <TService, TDecorator>(Action <StronglyTypedDecoratorConfigurator <TService, TDecorator> >?configurator, string callerFilePath, int callerLineNumber) where TService : class where TDecorator : TService { var metadata = new BindingMetadata(callerFilePath, callerLineNumber, Registrations.CurrentModule); var context = new StronglyTypedDecoratorConfigurator <TService, TDecorator>(metadata, Settings); configurator?.Invoke(context); Expression binding = context.ToBinding(); Registrations.AddDecorator(typeof(TService), binding); }