public static void ConfigureGenericListenerExtensions( IStatefulServiceHostBuilderConfigurator configurator, TheoryItem.TheoryItemExtensionProvider extensions) { configurator.DefineGenericListener( listenerBuilder => { listenerBuilder.ConfigureObject(c => ConfigureGenericListenerExtensions(c, extensions)); }); }
public static void ConfigureEventSourceExtensions( IStatefulServiceHostBuilderConfigurator configurator, TheoryItem.TheoryItemExtensionProvider extensions) { configurator.SetupEventSource( eventSourceBuilder => { eventSourceBuilder.ConfigureObject(c => ConfigureEventSourceExtensions(c, extensions)); }); }
public static void ConfigureDelegateExtensions( IStatefulServiceHostBuilderConfigurator configurator, TheoryItem.TheoryItemExtensionProvider extensions) { configurator.DefineDelegate( delegateBuilder => { delegateBuilder.ConfigureObject(c => ConfigureDelegateExtensions(c, extensions)); delegateBuilder.ConfigureObject( c => { var useDelegateInvoker = extensions .GetExtension <IUseDelegateInvokerTheoryExtension <IStatefulServiceDelegateInvocationContext> >(); var useDelegateEvent = extensions .GetExtension <IUseDelegateEventTheoryExtension <StatefulServiceLifecycleEvent> >(); 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 StatefulServiceHostDelegateInvokerDecorator(invoker)); }); c.UseEvent(useDelegateEvent.Event); }); }); }