private static ServiceDescriptor Decorate <TService>(this ServiceDescriptor descriptor, Func <TService, TService> decorator)
 {
     return(descriptor.WithFactory(provider => decorator((TService)provider.GetInstance(descriptor))));
 }
 private static ServiceDescriptor Decorate(this ServiceDescriptor descriptor, Type decoratorType)
 {
     return(descriptor.WithFactory(provider => provider.CreateInstance(decoratorType, provider.GetInstance(descriptor))));
 }
예제 #3
0
 private static ServiceDescriptor Adapt <TService, TTarget>(this ServiceDescriptor descriptor, Func <TService, IServiceProvider, TTarget> decorator)
 {
     return(descriptor.WithFactory(provider => decorator((TService)provider.GetInstance(descriptor), provider)));
 }