/// <summary> /// Builds the message handler chain /// </summary> /// <typeparam name="TMessageType">The message type /// </typeparam> /// <param name="chainBuilder"> /// The message Handler chain Builder. /// </param> /// <returns> /// The <see cref="Func<TmessageType,CancellationToken,Task>"/>. /// </returns> public static Func <TMessageType, CancellationToken, Task> BuildFunc <TMessageType>(this IChainBuilder <TMessageType> chainBuilder) { var subscriptionNotification = new ChainBuilderNotifier(); var services = new ChainBuilderSetupServices(subscriptionNotification); var func = chainBuilder.BuildFunc(services); var chain = new Chain <TMessageType>(func, ActionHelpers.NoAction); subscriptionNotification.Notify(chain); return(func); }