public static void ConfigureGenericListenerExtensions( IStatelessServiceHostBuilderConfigurator configurator, TheoryItem.TheoryItemExtensionProvider extensions) { configurator.DefineGenericListener( listenerBuilder => { listenerBuilder.ConfigureObject(c => ConfigureGenericListenerExtensions(c, extensions)); }); }
public static void ConfigureEventSourceExtensions( IStatelessServiceHostBuilderConfigurator configurator, TheoryItem.TheoryItemExtensionProvider extensions) { configurator.SetupEventSource( eventSourceBuilder => { eventSourceBuilder.ConfigureObject(c => ConfigureEventSourceExtensions(c, extensions)); }); }
public static void ConfigureDelegateExtensions( IStatelessServiceHostBuilderConfigurator configurator, TheoryItem.TheoryItemExtensionProvider extensions) { configurator.DefineDelegate( delegateBuilder => { delegateBuilder.ConfigureObject(c => ConfigureDelegateExtensions(c, extensions)); delegateBuilder.ConfigureObject( c => { var useDelegateInvoker = extensions .GetExtension <IUseDelegateInvokerTheoryExtension <IStatelessServiceDelegateInvocationContext> >(); var useDelegateEvent = extensions .GetExtension <IUseDelegateEventTheoryExtension <StatelessServiceLifecycleEvent> >(); var pickDependency = extensions.GetExtension <IPickDependencyTheoryExtension>(); c.UseDelegateInvoker( ( @delegate, provider) => { @delegate = DelegateWrap.Create( @delegate, new Action <IServiceProvider>( serviceProvider => { foreach (var pickAction in pickDependency.PickActions) { pickAction(serviceProvider); } })); var invoker = useDelegateInvoker.Factory(@delegate, provider); return(new StatelessServiceHostDelegateInvokerDecorator(invoker)); }); c.UseEvent(useDelegateEvent.Event); }); }); }